UIWebview中 js 的执行结果返回给OC ,js 回传OC
2015-02-03 16:52
176 查看
在UIWebview中,有这个方法
stringByEvaluatingJavaScriptFromString
可以将JS 传进web里面,实现js 想要的东西。
但一直以来,只知道进去,却不知道如何将值传出来,看了stringByEvaluatingJavaScriptFromString 他的头文件后,发现他是会返回nsstring的,于是着手测试他会返回哪些东西。
如以下测试程序,网页会先弹出一个选择框,如果你选了cancle ,他会输出101,如果选了确认,则会输出90,如此,大概可以知道它会返回执行的最后一行 非命令 的字符串了。
str = [webView stringByEvaluatingJavaScriptFromString:@"var a = confirm(\"我也爱看!\");if(a)alert(\"asd\");if(a) { 90}else{101}"];
另外,在网上看到其它做法,实现 js 中调用 oc 的方法,当然这是一种取巧的虚的方法,原理是当按下网页的连接时都会触发这个代理 shouldStartLoadWithRequest,然后通过判断URL字符串的内容来调用对应的oc方法。具体见此链接:http://code4app.com/snippets/one/UIWebView%E4%B8%ADHtml%E4%B8%AD%E7%94%A8JS%E8%B0%83%E7%94%A8OC%E6%96%B9%E6%B3%95%E5%8F%8AOC%E6%89%A7%E8%A1%8CJS%E4%BB%A3%E7%A0%81/546d7ba6933bf03d0a8b4ccd
stringByEvaluatingJavaScriptFromString
可以将JS 传进web里面,实现js 想要的东西。
但一直以来,只知道进去,却不知道如何将值传出来,看了stringByEvaluatingJavaScriptFromString 他的头文件后,发现他是会返回nsstring的,于是着手测试他会返回哪些东西。
如以下测试程序,网页会先弹出一个选择框,如果你选了cancle ,他会输出101,如果选了确认,则会输出90,如此,大概可以知道它会返回执行的最后一行 非命令 的字符串了。
str = [webView stringByEvaluatingJavaScriptFromString:@"var a = confirm(\"我也爱看!\");if(a)alert(\"asd\");if(a) { 90}else{101}"];
NSLog(@"b%@",str);
另外,在网上看到其它做法,实现 js 中调用 oc 的方法,当然这是一种取巧的虚的方法,原理是当按下网页的连接时都会触发这个代理 shouldStartLoadWithRequest,然后通过判断URL字符串的内容来调用对应的oc方法。具体见此链接:http://code4app.com/snippets/one/UIWebView%E4%B8%ADHtml%E4%B8%AD%E7%94%A8JS%E8%B0%83%E7%94%A8OC%E6%96%B9%E6%B3%95%E5%8F%8AOC%E6%89%A7%E8%A1%8CJS%E4%BB%A3%E7%A0%81/546d7ba6933bf03d0a8b4ccd
相关文章推荐
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
- [iOS Hybrid实践:UIWebView中Html中用JS调用OC方法,OC执行JS代码]
- UIWebView和网页的交互(OC中调执行JS)
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
- iOS UIWebView和网页的交互(OC中调执行JS)
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
- eval 是执行一段完整的js字符串代码,并将结果返回
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
- Java调用某一js文件中的方法,执行并返回结果
- Delphi经典执行DOS并返回结果代码(收集的)
- 在程序中调用外部程序,用process返回命令执行结果以及抓取错误信息的方法
- SQL Server 各种查询语句执行返回结果
- 获取执行SQL语句的返回结果
- chrome 13.0 的执行速度过快,结果导致iframe 里面的内容没有加载js先执行了!
- 执行cmd并返回程序结果
- 执行远程server上的命令并返回结果之两各方法
- Ajax 执行返回的服务器端返回的js