问题描述
- JS和OC的交互(凑字数凑字数)
-
各位大神,你们好。
我现在想达到在JS中调用Objective-C中的方法,来传数据。
效果为只需要在JS页面添加一个对象就可以调用Objective-C的方法,其他的什么都不用。方案1:使用javascriptcore,但是我发现它是把JS加载进context环境里面运行,而不是把值传到JS页面去,所以这个方法不行。另外,我只看到了OC调用JS方法的例子,没看到其他的例子。
方案2:是使用window对象,
//通过此回调,将self传递给JS环境- (void)webView:(WebView *)sender didClearWindowObject:(WebScriptObject *)windowObject forFrame:(WebFrame *)frame
{
[windowObject setValue:self forKey:@"native"];
}
这样就可以把整个类对象暴漏给JS环境了,其实质是把类对象设置成window的属性,但是不知道咋回事这个方法不好使,没法用,类型也找不着,为生命啥的。
所以这个解决方案也失败了。
方案3:使用bridge组件,那个组件必须要在JS界面添加代码,这个是不符合要求的。
我实在是没办法了,求大神帮忙吧。
谢谢!!! - (void)webView:(WebView *)sender didClearWindowObject:(WebScriptObject *)windowObject forFrame:(WebFrame *)frame
解决方案
可以参考这篇文章:http://www.cnblogs.com/yswdarren/p/3615458.html
采用iframe拦截url的方法,兼容ios和android。安全性也比较好。
时间: 2024-10-31 17:06:15