我正在使用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) 我正在使用以下代码构造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) 我在clojure做扑克游戏我有一个像以下的功能:
(sort (map rank straight-hand))
Run Code Online (Sandbox Code Playgroud)
按顺序返回手的等级
(2 3 4 5 6)
Run Code Online (Sandbox Code Playgroud)
如何检查序列中前面的数字和当前数字的差值是1
如何在swift中观察多个NSKeyObservingKeyValueoptions
self.avplayerItem.addObserver(self, forKeyPath: "status", options:[.Initial | .New], context: nil)
Run Code Online (Sandbox Code Playgroud)
我得到一个错误
错误
没有'|' 候选人产生预期的上下文结果类型'NSKeyValueObservingOptions'