Lydia's blog

Every day to be a little better


  • Home

  • Archives

  • Search

devise-将密码设成空字符串

Posted on 2018-12-03 12:25

u.update_column(:encrypted_password, ‘’)

rails- format.js

Posted on 2018-12-03 11:41

respond_to do |format|
format.js {
# 在 client 端執行 alert (javascript)

“alert(‘Hello Rails’);”,

# page not fount

status: 404,

# render /app/views/your-controller/test_action.js.erb

action: “test_action”,

# 將 test_item 以 json 格式 render

json: @test_item,

# 找到指定的檔案作 render

file: filename,

# 直接 render text: Hello

text: “Hello”
}

end

ios-打开其他app里的文件

Posted on 2018-11-26 10:31

1.info.plist里面配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>downloadPDF</string>
<key>LSHandlerRank</key>
<string>Default</string>
<key>LSItemContentTypes</key>
<array>
<string>com.adobe.pdf</string> //pdf
<string>com.microsoft.word.doc</string> //doc
<string>org.openxmlformats.wordprocessingml.document</string> //docx
</array>
</dict>
</array>
Read more »

服务器上操作

Posted on 2018-11-15 15:41
  1. 重启service
    staging: sudo service nginx restart
    production:
    先找到nginx 主进程
    ps -ef | grep nginx
    kill -HUP (root 对应的进程号)

  2. 修改application.yml
    cd ResumeHack/shared
    直接修改application.yml

ps:重启rails server 就是重启service就行

微信小程序-wx.request get cookie

Posted on 2018-11-13 18:17
1
2
3
4
5
6
7
8
9
wx.request({
url: '/api/login',
success: (data) => {
if(data.statusCode === 200) {
console.log(data);
// data 中应该会有 Set-Cookie 或 set-cookie 的字样,嗯,那就是服务器种下的 cookie
}
}
})

oc-wvjb remove Handler

Posted on 2018-11-10 12:08

参考

ios12-页面会上移

Posted on 2018-11-09 14:37
1
2
3
4
5
if(iPhoneXSeries){
_webview.scrollView.contentInset = UIEdgeInsetsMake(88, 0, 0, 0);
}else{
_webview.scrollView.contentInset = UIEdgeInsetsMake(64, 0, 0, 0);
}

ios 12之前 用这个方法将webview下移来正常显示页面,但是ios12之后这个页面有一个问题就是进行了某些操作之后页面会上移回UIEdgeInsetsMake(0, 0, 0, 0)
所以找到了另一个方法固定页面位置

1
self.edgesForExtendedLayout=UIRectEdgeNone;

ruby-版本判断

Posted on 2018-11-06 15:13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def compare_app_version(current, old)
return if current.blank? || old.blank?
la = current.split('.')
lb = old.split('.')
i = 0
if la.length > lb.length
len = la.length
else
len = lb.length
end
while i <= len do
if (la[i] && !lb[i] && la[i].to_i > 0) || (la[i].to_i > lb[i].to_i)
return 1
elsif (lb[i] && !la[i] && lb[i].to_i > 0) || (la[i].to_i < lb[i].to_i)
return -1
end
i +=1
end
return 0
end

ios-webview登录

Posted on 2018-11-06 14:43

ios webview登录最重要的就是将登陆之后的cookie存起来
在ios12之前我们登录都能正常从- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler方法中取到response之后,直接处理成cookie存起来
但是ios12开始 此方法登录就取不到response里最重要的set-cookie的值 我们就只能在h5那边登录之后的页面取到cookie经过字符串处理 将他们存起来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
-(void)loginSuccess:(NSHTTPURLResponse*)response orWithCookie:(NSString*)cookie{
//清除之前的coockie
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *_tmpArray = [NSArray arrayWithArray:[cookieJar cookies]];
for (id obj in _tmpArray) {
[cookieJar deleteCookie:obj];
}
// 删除NSUserDefault里面的值
NSUserDefaults *defatluts = [NSUserDefaults standardUserDefaults];
NSDictionary *dictionary = [defatluts dictionaryRepresentation];
for(NSString *key in [dictionary allKeys]){
if([key isEqualToString:@"cookie"]){
[defatluts removeObjectForKey:key];
}
[defatluts synchronize];
}
//读取wkwebview中的cookie 方法
NSArray *cookies =[NSHTTPCookie cookiesWithResponseHeaderFields:[response allHeaderFields] forURL: response.URL];
if (cookies.count <= 0){
NSString *b =[[self achieveStringWithRootString:cookie key:@"_ResumeHack_session"] stringByAppendingString:@" path=/; HttpOnly, "];
NSMutableArray* mcookies = [cookies mutableCopy];
[mcookies addObject:[b cookie]];
cookies = [NSArray arrayWithArray:mcookies];
}

for (NSHTTPCookie *cookie in cookies) {
//将 cookie 存进NSHTTPCookieStorage
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
}
//把cookie存到NUserDefault里面
NSData *cookiesData = [NSKeyedArchiver archivedDataWithRootObject: [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject: cookiesData forKey: @"cookie"];
[defaults synchronize];
NSLog(@"userdefault中的cookie%@",[defaults objectForKey:@"cookie"]);

//看看存入到了NSHTTPCookieStorage了没有
NSHTTPCookieStorage *cookieJar2 = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in cookieJar2.cookies) {
NSLog(@"NSHTTPCookieStorage中的cookie%@", cookie);
}

[self dismissViewControllerAnimated:YES completion:^{
_loginComplete();
}];
[Loading hide];
}

字符串处理cookie

1
2
3
4
5
6
7
8
- (NSString *)achieveStringWithRootString:(NSString *)rootString key:(NSString *)key{
NSRange aRange = [rootString rangeOfString:[NSString stringWithFormat:@"%@=",key]];
NSString *c = [rootString substringFromIndex:aRange.location];
NSLog(@"c===============%@", c);
NSRange bRange = [c rangeOfString:@";"];//匹配得到的下标
NSString *d = [c substringToIndex:bRange.location + bRange.length];
return d;
}

ps:在登录、登出中清除cookie跟userdefault中的值的时候要避免清除其他有用的值 否则会导致userdefault值的丢失 造成很奇怪的bug

ios-开屏广告图

Posted on 2018-11-05 16:00

1.广告页加载思路。广告页的内容要实时显示,在无网络状态或者网速缓慢的情况下不能延迟加载,或者等到首页出现了再加载广告页。所以这里我不采用网络请求广告接口获取图片地址,然后加载图片的方式,而是先将图片异步下载到本地,并保存图片名,每次打开app时先根据本地存储的图片名查找沙盒中是否存在该图片,如果存在,则显示广告页。

2.判断广告页面是否更新。无论本地是否存在广告图片,每次启动都需要重新调用广告接口,根据图片名称或者图片id等方法判断广告是否更新,如果获取的图片名称或者图片id跟本地存储的不一致,则需要重新下载新图片,并删除旧图片。

Read more »
1…789…28

Lydia

This is lydia's blog

277 posts
1 categories
46 tags
© 2020 Lydia
Powered by Hexo
|
Theme — NexT.Muse v5.1.4