UIWebView
沒有在即將顯示Javascript警報時調用的方法。但是你可以用shouldStartLoadWithRequest:
通知UIWebView
有關警報,然後再決定是否顯示與否:
在你的JavaScript時要調用警報做到這一點:
window.location.href = "alert://MESSAGE_TEXT";
在你的UIWebView的委託您可以攔截該請求,並決定是否要通過JavaScript調用警報:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
switch (navigationType) {
case UIWebViewNavigationTypeOther:
if ([[request.URL scheme] isEqualToString:@"alert"]) {
NSString *message = [request.URL host];
if (SHOULD_SHOW_ALERT) {
// the alert should be shown
[webView stringByEvaluatingJavaScriptFromString:@"showAlert()"];
} else {
// don't show the alert
// just do nothing
}
return NO;
}
break;
default:
//ignore
}
return YES;
}
我不知道,如果你需要將消息文本發送到UIWebView
,但我包括這樣你就可以看到如何將參數發送到UIWebView。您可以在URL的路徑中添加更多參數。
很顯然你必須用你自己的if子句來交換SHOULD_SHOW_ALERT
,它決定了是否顯示警報,你必須添加showAlert()
函數到你的Javascript中。
如何以及在哪裏調用警報?你打算做什麼,UIWebView應該知道Alert? – joern
joern,它被我的'UIWebView'中的內容/頁面調用。 –
[這篇文章](http://blog.impathic.com/post/64171814244/true-javascript-uiwebview-integration-in-ios7)可能對你有用。 – 68cherries