我的应用程序就像iBook。正在将 html 文件加载到网络视图中。
我有一个 html 文件加载到网络视图中。
<img class="play_icon" src="images/play_icon.png" onclick="javascript:window.external.notify('Home pregnancy test.mp4')" />
如何从目标 c 调用 javascript 函数 window.external.notify()
如何获取此通知并在目标 c 中获取视频网址
只需查看下面的解决方案
<!DOCTYPE html>
<html>
<head>
<script>
function yourFunctionName()
{
alert("Hello World!");
}
</script>
</head>
<body>
<button onclick="yourFunctionName()">Try it</button>
</body>
</html>
您的 Obj-C 代码
NSString *path;
NSBundle *thisBundle = [NSBundle mainBundle];
path = [thisBundle pathForResource:@"first" ofType:@"html"];
NSURL *instructionsURL = [NSURL fileURLWithPath:path];
[webView loadRequest:[NSURLRequest requestWithURL:instructionsURL]];
NSString * jsCallBack = [NSString stringWithFormat:@"yourFunctionName()"];
[webView stringByEvaluatingJavaScriptFromString:jsCallBack];
[webView stringByEvaluatingJavaScriptFromString:@"yourFunctionName()"];
您需要通过以下方式实现执行,因为在一个地方实现上述 Obj-C 将不起作用。所以你必须按照以下方式去做。原因是工作将以异步方式进行,这就是为什么
在 UIWebViewDelegate 中调用以下函数
[webView stringByEvaluatingJavaScriptFromString:@"yourFunctionName()"];
回调方法应该在 –webViewDidFinishLoad 上:
如果您需要更多信息,请查看以下链接
使用 Objective-C 中的 JavaScript
希望这有帮助