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;
            }
        }
使用 & 分割 想要传递的数据参数 就可以了
时间: 2024-08-29 22:21:15

webView与OC的交互的相关文章

安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");

近期做一个项目需要把一个 服务支持的界面用webview来显示..呀 html白雪了js更是一样啥也不会,相信很多初学屌丝员跟我一样,, html开发工具都不知道怎么写..哈哈哈.....现在把做完的结果分享一下先上图了 ,, 这是从项目中特意分离出来的demo这里之上一些关键代码 源码下载地址  http://download.csdn.net/download/yung7086/7554309 步骤 首先在assets目录下建一个html文件 <!DOCTYPE html PUBLIC &quo

Android WebView与服务端交互Demo

使用WebView可以让Android端的开发工作大量减少,原因是在服务端可以为其做一定的工作,下面这个小Demo就实现了从Android客户端与服务端的交互.我这里客户端使用的工具是Eclipse,服务端使用MyEclipse. 实现效果图: 客户端: 点击登录按钮后,页面跳转,而在服务端Console中看到如下(只看最后一行即可): 可以看到服务端收到了客户端发过来的用户名:yao. 源代码: 客户端: activity_main: <RelativeLayout xmlns:android

js(javascript)与OC(Objective-C)交互

实质上oc与js的通信交互就是发送消息,也即函数调用,iOS7以后官方公布JavaScriptCore framework中很方便我们对他们之间的相互调用.在以前我们只能通过UIWebView的UIWebViewDelegate协议来实现. 1 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType

WebViewJavascriptBridge Android端 乱码问题(webview与页面js交互 传输参数乱码)

场景:Android 项目中webview 加载 远程html url地址,并显示.点击html 按钮后,通过js 传送参数给 webview .原生Android代码中即可获取参数并做处理(根据业务而定).在传输中遇到乱码问题. 乱码主要针对于中文. WebViewJavascriptBridge 交互使用就不重复了,可以参考 http://www.cnblogs.com/whoislcj/p/6104015.html html端js 代码: function setupWebViewJava

iOS-JS和OC的交互

?1.OC调?用JS - OC传递数据给JS ?1> 利?用UIWebView的某个?方法执?行JS代码 ?NSString *result = [webView stringByEvaluatingJavaScriptFromString:js]; ?// result是执?行完JS代码后的返回值 ?// 其实也可以通过这个?方法办到:JS传递数据给OC ?2> 举例 ?NSString *username = @"zhangsan"; ?NSString *pwd =

webview与JS的交互

一:hybird app, web app 和 native app 的区别   Web App Hybird App 混合Native App 开发成本 低 中 高 维护更新 简单 简单 复杂 体验 差 优 优 跨平台 优 优 差 Native App是一种基于智能手机本地操作系统如IOS,Android等并运用原生程序编写运行的第三方运用程序,也叫本地App. Web App 是针对Iphone,Android优化后的web站点,前端使用的技术是:html5,css,javascript等,

Webview Android与js交互

Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true Android(Java)与JavaScript(HTML)交互有四种情况: 1) Android(Java)调用HTML中js代码 2) Android(Java)调用HTML中js代码(带参数) 3) HTML中js调用Android(Java)代码 4) HTML中js调用Android(Java)代码(带参数) 下面示例总结这四种情况,直接上干货:

OC js 交互

React Native是Facebook刚开源的框架,可以JavaScript直接开发原生APP,先不说这个框架后续是否能得到大众认可,单从源码来说,这个框架源码里有非常多的设计思想和实现方式值得学习,本篇先来看看它最基础的JavaScript-ObjectC通信机制(以下简称JS/OC). 概览 React Native用iOS自带的JavaScriptCore作为JS的解析引擎,但并没有用到JavaScriptCore提供的一些可以让JS与OC互调的特性,而是自己实现了一套机制,这套机制可

WebView用法与JS交互(2) 响应webview中的图片点击事件

参考:http://blog.csdn.net/wangtingshuai/article/details/8635787 js代码 // 注入js函数监听 private void addImageClickListner() { // 这段js函数的功能就是,遍历所有的img几点,并添加onclick函数,函数的功能是在图片点击的时候调用本地java接口并传递url过去 contentWebView.loadUrl("javascript:(function(){" + "