博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 利用UIWebView与JavaScript交互的最简单办法(本人已验证可行)
阅读量:6189 次
发布时间:2019-06-21

本文共 1137 字,大约阅读时间需要 3 分钟。

本贴转自

1, UIWebView调用 JavaScript 的函数:

NSString* strValue = [webView stringByEvaluatingJavaScriptFromString:@"YourFunctionName('YourParameter')"];

上面这句就是调用 JavaScript里面自定义的函数 YourFunctionName(传入参数'YourParameter',取得返回值赋给strValue )

2,JavaScript (通过UIWebView)调用ObjC方法:

下面说到的是最简单、最通用的办法!!脚本写完之后可以丢到Android执行的:

就是利用UIWebView(Android的是WebView)拦截URL的功能!!!约定一个特殊URL,写在脚本,让上层去拦截分析!!比如,

在JavaScript写上:

window.location.href = "ABCD://XXXYYYZZZ"

在iOS里面:

实现UIWebViewDelegate下面这个函数(不要忘记设置 webView.delegate = self 这样细节)

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

{

          NSString* strXXX = request.URL.absoluteString;

          //假设只是分析 "ABCD://"

            NSRange range = [strXXX rangeOfString:@"ABCD://"];

             if( range.location != NSNotFound )
             {
                    //就在这里执行操作了!!!

            

                   return NO;//返回NO,表示取消对本次请求的导航

              }

        return YES;

}

//Android里面,利用WebView 重载这个函数也可以做到同样效果

public boolean shouldOverrideUrlLoading(WebView  view, String url) { 

return true;

}

这样,当JavaScript执行window.location.href = "ABCD://XXXYYYZZZ"这句,就触发上层的对应操作了!

也就是实现JavaScript调用上层ObjC函数的功能了

 

 

转载于:https://www.cnblogs.com/wmwblog/p/4983693.html

你可能感兴趣的文章
.Net转Java自学之路—基础巩固篇三十(JDBC)
查看>>
[HeadFirst-HTMLCSS学习笔记][第八章扩大你的词汇量]
查看>>
CF 354E DFS
查看>>
碰到的TypeError--记录
查看>>
Java设计模式之十 ---- 访问者模式和中介者模式
查看>>
redis的持久化(RDB&AOF的区别)
查看>>
8M - 三角形
查看>>
ChromeDriver和PhantomJS配置到$PATH
查看>>
软件测试HW3 主路径覆盖测试
查看>>
用线程安全随机数解决Random在多线程中随机性重复的问题
查看>>
HDU 2602
查看>>
漫谈moosefs中cgi各项的意义
查看>>
软件工程概论作业四
查看>>
eclipse打包
查看>>
springMVC Model ModelMap 和 ModelAndView的区别
查看>>
html小任务,编写表单里的各项元素
查看>>
小程序坑 redirectTo 计时器 setInterval clearInterval
查看>>
HDU 6074 - Phone Call | 2017 Multi-University Training Contest 4
查看>>
POJ1201 Intervals差分约束系统(最短路)
查看>>
Render OpenCascade Geometry Curves in OpenSceneGraph
查看>>