实现OC与JS的交互
-
oc-->js stringByEvaluatingJavaScriptFromString,其参数是一NSString 字符串内容是js代码(这又可以是一个js函数、一句js代码或他们的组合),当js函数有返回值或一句js代码有值返回可通过stringByEvaluatingJavaScriptFromString的返回值获取。
js-->oc 利用webView的重定向原理(即重新在js中指定document.location的值,此为一url),只要在这个url字符串中按自定义的规则指定好所需调用oc中的函数和参数,然后通过OC中的shouldStartLoadWithRequest函数去捕获处理请求。
?12345//APP调用webView加载的JS中的方法interfaceCalledByAPP,此例传入了两个参数
- (
void
)sendMessage:(id)sender {
[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@
"interfaceCalledByAPP(\"%@\",\"%@\")"
, @
"2"
,@
"333"
]];
}
1234//JS向APP传值。首先实现UIWebView的代理,然后根据NSURLRequest的URL进行不同处理
//JS中的将要传递的数据作为URL重定向
var tempurl =
"将要传递的值"
;
window.location.href= encodeURI(encodeURI(tempurl));
?1234567891011//webView的代理相应重定向
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
NSString *requestString = [[[request URL] absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@
"should-------"
);
if
([requestString hasPrefix:@
"url://"
]) {
//根据自己定义的规则,通过字符串的值,调用OC的方法。这里就输出一下字符串了。
NSLog(@
"===%@"
,requestString);
}
return
YES;
}
实现OC与JS的交互相关推荐
- [转]OC与JS的交互详解
事情的起因还是因为项目需求驱动.折腾了两天,由于之前没有UIWebView与JS交互的经历,并且觉得这次在功能上有一定的创造性,特此留下一点文字,方便日后回顾. 我要实现这样一个需求:按照本地的CSS ...
- (0085)iOS开发之OC与JS交互高级用法(JavaScriptCore)
前述:JavaScriptCore你不知道的OC与JS之间交互.OC与JS之间用model实现交互.通讯.传值!好玩! 几乎三年来一直断断续续接触OC与JS交互,每次觉得UIWebView OC与JS ...
- iOS OC与JS交互(WebView监听事件)
在iOS应用的开发过程中,我们经常会使用到WebView,当我们对WebView进行操作的时候,有时会需要进行源生的操作.那么我记下来就与大家分享一下OC与JS交互. 首先先说第一种方法,并没有牵扯O ...
- OC与JS交互 初体会
第一篇博客,有点小紧张.小期待,会不会有人看?有也好,没有也罢,权当自己图个乐儿,记录近来学到的知识.闲话少说,进入正题! OC与JS交互的方式:1.使用UIWebView通过拦截Request完成J ...
- 通过WebViewJavascriptBridge实现OC与JS交互
这里照搬Github的Demo,其实还是很易懂的,首先,要在控制器的.h文件当中实现浏览器控件的协议: 1 #import <UIKit/UIKit.h> 2 3 @interface E ...
- Flutter开发Flutter与原生OC、Java的交互通信-1(47)
我的文章讲过:(0085)iOS开发之OC与JS交互高级用法(JavaScriptCore) 前言:我们知道OC 在UIWebView 加载 H5中,常常需要OC 与 H5 之间进行交互调用.采取的方 ...
- OC和JS互相调用小框架
鄙人不才献上一份UIWebView和JS交互的桥接框架 不多说直接上货吧!!! 献上框架.m文件的内部实现和代码注释 导入<objc/runtime.h> #import "UI ...
- iOS开发日记27-WebView与JS的交互
今天博主有一个WebView与JS的交互的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步. WebView与JS的交互分为两种种方式:1.在OC中调用JS 2.在JS中调用OC 网页试用[N ...
- js层级选择框样式_IOS和JS的交互,看这一篇文章就够了
IOS和JS的交互,看这一篇文章就够了 创作不易,请珍惜,之后会持续更新,不断完善 Demo地址 目录 WKWebView使用.JS的交互 WKWebView使用.JS的交互 演示(本来想贴张GIF作 ...
最新文章
- 什么是停止词stopword
- 2022 专属程序员的桌面必备单品!
- Challenge: Machine Learning Basics
- 【IT资讯】年薪170万码农征友,条件让网友炸锅……
- [CTSC2017]吉夫特(思维+巧妙)
- SpringCloud Zuul(七)之POST Filter
- java泛型一定用包装类_你不知道的基本数据类型和包装类
- php代码审计是什么意思,php代码审计基础篇
- Error: ER_ACCESS_DENIED_ERROR: Access denied for user ‘root‘@‘localhost‘ (using password: YES)解决办法
- 非线性微分方程线性化
- 微信第三方平台对接小程序发版
- 思岚A1与A2性能及建图测试比较
- PIL.image保存图片
- CPU、MCU、FPGA、SoC……这些芯片究竟是啥?
- 驱动加载错误:insmod: error inserting 'hello.ko': -1 Device or resource busy
- DameWare各种版本激活码-备份
- python依据出生日期判断星座(少量代码)
- E-puck2机器人系列教程-8.切换WIFI模式ESP32固件烧录
- 原始值和引用值类型及区别
- 远程桌面为啥会连接不上?