小编har*_*man的帖子

解雇前调用WKWebView completionHandler

我正在使用WKUIDelegate这个函数来处理javascript警报

-(void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler
{

    UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Test Alert", nil)
                                                     message:message
                                                    delegate:self
                                           cancelButtonTitle:nil
                                           otherButtonTitles:@"OK", nil] autorelease];

    [alert show];
    completionHandler();
}
Run Code Online (Sandbox Code Playgroud)

根据苹果的文档,我们应该叫警报的compeletionHandler()压警觉后OK按钮,提到这里

按下OK按钮后如何调用completionHandler()?如果我没有调用completionHandler(),则抛出expect

**[WKWebViewController webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:
    completionHandler:]:
***** Terminating app due to uncaught exception 'NSInternalInconsistencyException',
   reason: 'Completion handler passed to -[WKWebViewController
   webView:runJavaScriptAlertPanelWithMessage:
   initiatedByFrame:completionHandler:] was not called'****
Run Code Online (Sandbox Code Playgroud)

更新:

Stefan下面提到的解决方案与JS Alert一起工作正常,但JS Confirm没有.以下是代码我得到相同的异常,即使在ok和cancel按钮中调用了completionHandler().

-(void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(BOOL))completionHandler
{
    MKCLOG_DEBUG(@"%@", frame.request.URL);
    UIAlertController* alert = [UIAlertController alertControllerWithTitle:
                                NSLocalizedString(@"Test", nil) message: message
                                                            preferredStyle: UIAlertControllerStyleAlert];

    UIAlertAction …
Run Code Online (Sandbox Code Playgroud)

objective-c ios wkwebview wkwebviewconfiguration

4
推荐指数
1
解决办法
5529
查看次数

iOS:如何为NSHTTPCookie设置httponly标志

我正在使用以下代码构造NSHTTPCookie,但是没有用于设置Cookie的httpOnly标志的选项

[cookieProperties setObject:@"name" forKey:NSHTTPCookieName];
[cookieProperties setObject:@"value" forKey:NSHTTPCookieValue];
[cookieProperties setObject:[NSNumber numberWithBool: NO] forKey:NSHTTPCookieDiscard];
[cookieProperties setObject:[dictionary objectForKey:@"isSecure"] forKey:NSHTTPCookieSecure];


[cookieProperties setObject:@"abc.xyz.com" forKey:NSHTTPCookieDomain];
[cookieProperties setObject:@"abc.xyz.com" forKey:NSHTTPCookieOriginURL];
[cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
[cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];
Run Code Online (Sandbox Code Playgroud)

cookies objective-c nshttpcookie ios

1
推荐指数
1
解决办法
3073
查看次数

如何检查一个序列是否增加+1增量clojure?

我在clojure做扑克游戏我有一个像以下的功能:

(sort (map rank straight-hand))
Run Code Online (Sandbox Code Playgroud)

按顺序返回手的等级

(2 3 4 5 6)
Run Code Online (Sandbox Code Playgroud)

如何检查序列中前面的数字和当前数字的差值是1

functional-programming clojure

0
推荐指数
1
解决办法
415
查看次数

快速观察多个NSKeyObservingKeyValueoptions

如何在swift中观察多个NSKeyObservingKeyValueoptions

 self.avplayerItem.addObserver(self, forKeyPath: "status", options:[.Initial | .New], context: nil)
Run Code Online (Sandbox Code Playgroud)

我得到一个错误

错误

没有'|' 候选人产生预期的上下文结果类型'NSKeyValueObservingOptions'

key-value-observing swift

0
推荐指数
1
解决办法
516
查看次数