webView与OC的交互
layout: post
title: webView 的 iOS 与 js 交互
subtitle: iOS 与 js 交互的几种方式
author: manajay
date: 2016-05-31 16:17:13 +0800
categories: webView js
tag: web
1. web 给 原生 传递数据
- web 网页的源代码
var res = {"title":" 端午礼包提回去,丈母娘不满意来找我!!!","url":"http:\/\/app.xxx.com\/news\/rd\/content_wap_39865.shtml","image":"http:\/\/www.xxx.com\/v\/b\/images\/2016\/5\/30\/20165301464599344828_167.jpg","summary":" 端午礼包提回去,丈母娘不满意来找我!!!"};
function item_info(){
return JSON.stringify(res);
}
try {
window.share.shareData(JSON.stringify(res));
} catch(e) {
}
- 在 webView 的 - (void) webViewDidFinishLoad:(UIWebView *)webView 方法中 获取
// 使用 stringByEvaluatingJavaScriptFromString 调用 js 方法
NSString *info = [webView stringByEvaluatingJavaScriptFromString:@"item_info()"];
NSDictionary *shareData = [NSJSONSerialization JSONObjectWithData:[info dataUsingEncoding:NSUnicodeStringEncoding] options:NSJSONReadingAllowFragments error:nil];
2. Web 调用 原生的功能
主要是 使用 自定义协议头
在 web 中的按钮 或者 点击链接的中 写一个方法function, 然后调用 类似
window.location.href='playvideo://tide?url=http://123.125.148.27:96/video/gesila.mp4';"
其中 playvideo:// 为自定义的协议头
然后原生代码中,使用 webView 的代理方法 即 重定义技术
- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
NSURL *url = request.URL;
if ([url.scheme isEqualToString:@"playvideo"]) {
NSArray *querys = [url.query componentsSeparatedByString:@"&"];
NSString *videoUrl = nil;
for (NSString *query in querys) {
if ([query rangeOfString:@"url="].location != NSNotFound) {
videoUrl = [query substringFromIndex:4];
break;
}
}
使用 & 分割 想要传递的数据参数 就可以了
webView与OC的交互的更多相关文章
- iOS中JS 与OC的交互(JavaScriptCore.framework)
iOS中实现js与oc的交互,目前网上也有不少流行的开源解决方案: 如:react native 当然一些轻量级的任务使用系统提供的UIWebView 以及JavaScriptCore.framewo ...
- iOS开发:JavaScriptCore.framework的简单使用--JS与OC的交互篇
iOS7之后苹果为众猿推出了JavaScriptCore.framework这个框架,这个框架为大家在与JS交互上提供了很大帮助,可以在html界面上调用OC方法并传参,也可以在OC上调用JS方法并传 ...
- Android中webView和网页的交互
Android中webView和网页的交互 Android中webView跟网页的交互式通过JavaScript进行的.具体步骤: 1.创建JavaScript,在点击的时候调用JavaScript ...
- 在Ubuntu15.10中,使用wxPython的webview和JS进行交互
在Ubuntu下进行wxPython开发,因为需求,所以使用了wxPython的webview和JS的交互. 在Windows下,下图显示的代码可以正常的运行,但是在Ubuntu下进行开发,以下的代码 ...
- webview与JS的交互
webview与JS的交互 一:hybird app, web app 和 native app 的区别 Web App Hybird App 混合Native App 开发成本 低 中 高 维护 ...
- Android中WebView与H5的交互,Native与JS方法互调
项目中经常用到WebView与H5的交互,一个是H5调本地方法,一个是本地调H5方法,在此记录一下. 首先,启用JS支持 //启用js支持 webSettings.setJavaScriptEnabl ...
- js(javascript)与OC(Objective-C)交互
实质上oc与js的通信交互就是发送消息,也即函数调用,iOS7以后官方公布JavaScriptCore framework中很方便我们对他们之间的相互调用.在以前我们只能通过UIWebView的UIW ...
- Webview 与h5的交互
步骤:H5代码 <html> <head> <meta charset="UTF-8"> <title>交互Demo ...
- Webview Android与js交互
Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true Android(Java)与JavaScript(HTML) ...
随机推荐
- Contact项目梳理
1. 共三张表:user用户表 group分组表 contact联系人表 entity 分模块,三个实体类,三个模块 2. 先注册再登录 DAO:UserDAOImpl public User g ...
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED
原文地址:http://linuxme.blog.51cto.com/1850814/375752 今天将阿里云服务器更换了一下系统盘,重启成功后,再次通过终端访问阿里云的公网IP报以下信息: @@@ ...
- gulp 插件
原文链接:http://www.mamicode.com/info-detail-517085.html gulp是什么? http://gulpjs.com/ 相信你会明白的! 与著名的构建工具gr ...
- YYYY-mm-dd HH:MM:SS
备忘:YYYY-mm-dd HH:MM:SS部分解释 d 月中的某一天.一位数的日期没有前导零. dd 月中的某一天.一位数的日期有一个前导零 ...
- 阿里的maven私服
<mirror> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>http://maven ...
- Python正则化学习
- call()和原型继承的方法
1.call() call()方法接受两个参数,obj和arg 比如functionA.call(obj,arg) 就是说现在运行(执行)functionA这个方法,但是functionA里面的方 ...
- Linux文件权限查看及修改命令chmod
查看权限 Linux文件访问权限分为可读,可写和可执行三种. 可用ls -l命令查看,例: ls -l或者 ll 显示为 -r--r--r--. 1 root root 21 Jan 5 23:02 ...
- js中function函数
function:是具备某个功能的方法,方法本身没有意义,只有执行方法才有价值. function: 1 创建一个函数: 2 执行这个方法: 例: 创建 function 方法名(){ 存放某个功能的 ...
- SPSS数据分析—因子分析
我们知道主成分分析是一种降维方法,但是其本质上只是一种矩阵变换的过程,提取出来的主成分并不都具有实际含义,而这种含义往往是我们所需要的,接下来的因子分析可以解决这个问题 因子分析可以看做是主成分分析的 ...