LK.*_*LK. 35 javascript cocoa-touch objective-c uiwebview ios
当在UIWebView中检测到某个事件时,有没有办法获得对objective-c的回调?Javascript可以向Objective-C发送回调吗?
bpa*_*apa 31
更新 - 不再使用UIWebView.使用WKWebView,或者更好(如果它符合您的需求,并且您正在为iOS 9构建),Safari View Controller.
但是如果必须在UIWebView委托中使用UIWebView,请为webView提供一个实现:shouldStartLoadWithRequest:navigationType:
在HTML或Javascript文件中,添加将URL发送到自定义方案的函数(出于可读性目的,不需要自定义方案).发送的所有URL都将传递给您的Objective-C方法实现,然后您就可以执行您想要的操作.
geo*_*eon 31
只是用实际代码来说明"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;
}
Run Code Online (Sandbox Code Playgroud)
...然后在webwieb中添加如下链接:
<a href="callback:whatever">Click me</a>
Run Code Online (Sandbox Code Playgroud)
它应该激活你的回调代码.显然,您可以使用javascript而不是普通链接来触发它.
| 归档时间: |
|
| 查看次数: |
26547 次 |
| 最近记录: |