[英]Passing large data to UIWebView javascript from Objective-C
[英]Javascript in UIWebView callback to C/Objective-C
當在 UIWebView 中檢測到某個事件時,有沒有辦法回調到objective-c? Javascript 可以向 Objective-C 發送回調嗎?
更新 - 不再使用 UIWebView。 使用 WKWebView,或者更好的(如果它滿足您的需求並且您正在為 iOS 9 構建),一個 Safari 視圖控制器。
但是如果你必須使用 UIWebView,在你的 UIWebView 委托中,提供webView:shouldStartLoadWithRequest:navigationType 的實現:
在您的 HTML 或 Javascript 文件中,添加將 URL 發送到自定義方案的函數(出於可讀性目的,不需要自定義方案)。 所有發送的 URL 都會傳遞給你的 Objective-C 方法實現,然后你就可以做你想做的了。
只是為了用實際代碼說明“bpapa”的解決方案:
警告:未經測試的代碼
在 UIWebView 的委托中實現這個方法...
-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
if ( [[[inRequest URL] scheme] isEqualToString:@"callback"] ) {
// Do something interesting...
return NO;
}
return YES;
}
...然后在 webwieb 中放置一個鏈接,如下所示:
<a href="callback:whatever">Click me</a>
它應該激活您的回調代碼。 顯然,您可以使用 javascript 而不是普通鏈接來觸發它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.