文档章节

JS<->OC

FTD_SL
 FTD_SL
发布于 2016/10/10 17:32
字数 160
阅读 27
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

一.oc调用js

在webViewDidFinishLoad:(UIWebView *)webView 方法中调用[webView stringByEvaluatingJavaScriptFromString:【jsString】];

二.js调用oc

NO.1截获URL 

在webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType方法里截获url,分离方法名和参数;

NO.2调用库<JavaScriptCore/JavaScriptCore.h>

<1>获取该UIWebview的javascript执行环境;

JSContext *context = [webview valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

<2>在该javascript执行环境中,定义一个js函数;

self.jsContext[@"judgeLogin"] = ^() {

     //方法实现        

    };

<3>HTML中直接调用咱这边定义的方法即可。

function buttonClick() {

   judgeLogin()

}

注意:

通过<JavaScriptCore/JavaScriptCore.h>库来进行交互时,在网页重定向之后,需要重新获取JSContext,并设置交互方法

© 著作权归作者所有

FTD_SL
粉丝 2
博文 35
码字总数 14614
作品 0
南京
私信 提问
JS与OC-WebView交互总结

OC与JS交互有两种方式,WKWebView和UIWebView,由于UIWebView比较耗内存,性能上不太好,所以苹果在iOS 8中推出了WKWebView。 一、与UIWebView交互 在UIWebView与JS交互中最简单的办法就是拦截...

乔兰伊雪
2018/05/29
0
0
【iOS & Web】JavaScript & Objective-C二重奏

一、JS call OC 方法1: 通拦截协议头来获取协议字符串。在UIWebView中的代理方法中有这样的方法,如下图所示: 下面是我写的简单的H5页面通过JS请求一个自定义协议的URL,然后通过UIWebView...

魔笛GNR
2016/10/19
52
0
iOS下JS与OC互相调用(六)--WKWebView + WebViewJavascriptBridge

iOS下JS与OC互相调用(六)--WKWebView + WebViewJavascriptBridge 转载:原地址 https://www.jianshu.com/p/e951af9e5e74 上一篇文章介绍了UIWebView 如何通过WebViewJavascriptBridge 来实现......

法斗斗
2018/05/11
142
0
​基于 WKWebview 进行二次封装的 WebView - KSWebView

KSWebView,最好的 WKWebView 继承者。 KSWebView是基于WKWebview进行2次封装的WebView。 KSWebView具有: 用JS语句的方式调用原生类/对象,方便快捷,老板提出来的临时需求也能马上解决的方...

kinsunlu
2018/08/30
702
0
OC高手JS高手JAVA高手进来都来看下,帮个忙!

有个数值转换函数,JAVA和JS版都有了,本人是个刚学IOS一个星期的OC小白,写不出OC版的数值转换函数。 下面贴出JS和JAVA版函数,望有高手们帮我转成OC版谢谢! JS版 JAVA版...

DMC_鱼
2016/02/23
206
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx反向代理+负载均衡+服务器宕机解决办法

反向代理 作用:保证系统安全,不暴露服务器IP,利用nginx服务器,利用内网ip进行访问,避免出现攻击服务器的情况 启动本地tomact,127.0.0.1:8080可以访问到tomcat管理页面 效果:通过 bbs....

Jack088
17分钟前
2
0
返回IEnumerable 与IQueryable相比 [关闭]

返回IQueryable<T>与IEnumerable<T>之间有什么区别? IQueryable<Customer> custs = from c in db.Customerswhere c.City == "<City>"select c;IEnumerable<Customer> custs = from c i......

技术盛宴
24分钟前
2
0
开放下载 | 《Knative 云原生应用开发指南》开启云原生时代 Serverless 之门

点击下载《Knative 云原生应用开发指南》 自 2018 年 Knative 项目开源后,就得到了广大开发者的密切关注。Knative 在 Kubernetes 之上提供了一套完整的应用 Serverless 编排服务,让应用开发...

阿里巴巴云原生
28分钟前
2
0
解密淘宝推荐实战,打造 “比你还懂你” 的个性化APP

手淘推荐简介 手淘推荐的快速发展源于2014年阿里“All in 无线”战略的提出。在无线时代,手机屏幕变小,用户无法同时浏览多个视窗,交互变得困难,在这样的情况下,手淘借助个性化推荐来提升...

阿里云官方博客
31分钟前
2
0
内核程序中进程的pid,handle,eprocess之间相互转换的方法

在内核程序开发中,我们常常需要取得某进程的pid或句柄,或者需要检索进程的eprocess结构,很多API函数需要的参数也不同,所以掌握pid<->handle<->eprocess相互转换的方法会大大提高我们的开...

simpower
33分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部