iOS开发免不了要与UIWebView打交道,然后就要涉及到JS与原生OC交互,今天总结一下JS与原生OC交互的两种方式。...JS调用原生OC篇 方式一 第一种方式是用JS发起一个假的URL请求,然后利用UIWebView的代理方法拦截这次请求,然后再做相应的处理。...iOS下JS与OC互相调用(一)--UIWebView 拦截URL iOS下JS与OC互相调用(二)--WKWebView 拦截URL iOS下JS与OC互相调用(三)--MessageHandler...iOS下JS与OC互相调用(四)--JavaScriptCore iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge iOS下JS与OC互相调用...(六)--WKWebView + WebViewJavascriptBridge iOS下JS与OC互相调用(七)--Cordova 基础 iOS下JS与OC互相调用(八)--Cordova详解+实战
不过有的时候,也会需要用到原生的模块,比如: 高性能计算:图片处理、文件压缩等; 复用native已有的模块:比如跨Android、IOS的链接库等; RN 尚不支持的native模块:比如iOS SDK...更新吼,RN可能还没有对应的模块; 这种情况下,可以利用 RN 导出原生模块给 js 调用,下文会简单举例说明。...中调用 从 js 中调用自定义的原生模块非常简单,代码如下: import {NativeModules} from 'react-native'; const TodoList = NativeModules.TodoList...", item]; reject(@"ErrorFromNativeModule", errMsg, error); } } 其次,在 index.js 中添加调用...相关链接 2019.11.07-calling-native-module-from-js-in-rn/ https://facebook.github.io/react-native/docs/native-modules-ios
jQuery的过程中,我们经常是这样使用的: $("html").css(); $.get("/abc", function(){}) 发现特别好用,而我在前段时间处理webview的时候,也多次使用到js...,并且对于使用原生JS感到稍有不便。
于是: 我查了很多资料,逛了很多论坛,最终在Github上找到了一个名为“NativeShure”的JS插件,据说对浏览器的兼容性不错,于是便开始折腾!...废话不多说,直接上插件的官方文档: 移动端几乎所有浏览器都支持分享到QQ和QQ空间 QQ浏览器 UC浏览器 微信自带浏览器 QQ自带浏览器 QQ空间APP 百度浏览器 ios 搜狗浏览器 支持分享到web...我也很难判断当前浏览器是否支持,浏览器是否唤起QQ APP我也很难判断,所有除了上述支持的浏览器,APP外其他情况调用分享到QQ我也会抛出异常。...浏览器安卓端不能设置icon 百度浏览器,百度APP不能直接分享 QQ空间APP,微信自带浏览器只能设置文案,分享需要用户手动点击右上角 使用方法: 1.设置一个按钮并绑定点击事件 2.引入插件JS
初始化地图 定义可以拖控件连线或者代码定义 //设置地图类型 appMapView.mapType = MKMapType.Standard; //是否显示...
2.2 添加JS要调用的原生OC方法。 在HMTL加载成功的回调方法- (void)webViewDidFinishLoad:(UIWebView *)webView中添加要调用的原生OC方法。...要调用的原生OC方法,可以在viewDidLoad webView被创建后就添加好,但最好是在网址加载成功后再添加,以避免无法预料的乱入Bug。...奇怪的是竟然可以更新部分UI,例如给view设置背景色,调用webView执行js等,但是弹出原生alertView就会在控制台报子线程操作UI的错误信息。...2.3 OC调用JS方法 OC调用JS方法就有多种方式了。首先介绍使用JavaScriptCore框架的方式。...WKWebView中如何实现OC与JS交互可以看前面这篇文章:iOS下JS与OC互相调用(三)--MessageHandler UIWebView利用JavaScriptCore来实现交互的示例工程:JS_OC_JavaScriptCore
使用WKWebView的时候,如果想要实现JS调用OC方法,除了拦截URL之外,还有一种简单的方式。那就是利用WKWebView的新特性MessageHandler来实现JS调用原生方法。...WKScriptMessageHandler是因为我们要处理JS调用OC方法的请求。...解析JS 调用OC 实现分享的参数: - (void)shareWithParams:(NSDictionary *)tempDic { if (!...4.处理HTML中JS调用。 HMTL的源码跟之前的HTML内容差不多,只有JS的调用部分改变了。...JS 这里使用WKWebView 实现OC 调用JS方法跟上一篇是一样的,还是利用 - evaluateJavaScript:completionHandler:。
在 上一篇中 我们实现了原生和JS 的方法调用,这篇解决一下在 APP 中调用JS方法时怎么含有 JS 的回调 首先我们的期望是在JS中采用如下写法回调: function testCallBack...add.appendChild(newTestNode); callBack('已经添加' + data); }; 这样在 JS...中直接使用 callBack 便可以回调APP,并可以传输参数 我的思路就是: 我们在调用 JS 代码的时候 testCallBack 第二个参数我们穿进去一个已经实现过的 function 这个....postMessage()会调用一个原生的方法,这样在JS中通过 callBack 调用时候,就回调了APP 至于 appMethod 我们可以通过 regist(name...\(uuid).postMessage(data)}" 上面代码中的 funcjs 会最为 调用js代码中方法中的第二个参数 callBack 这样就已经实现了调用JS时,JS能够回调 上面的源码可以在
注意事项 使用 JS 实现复制功能并不是很难,但是有几个需要注意的地方。 首先文本只有选中才可以复制,所以简单的做法就是创建一个隐藏的 input,然后绑定需要复制的文本。...input.value.length); document.execCommand('Copy'); document.body.removeChild(input); } 移动端禁止键盘弹出 在 iOS
需要调用的原生功能都要先用registerHandler注册一下 [_webViewBridge registerHandler:@"shareClick" handler:^(id data...第四步、完成HMTL必要的JS代码 由于WebViewJavascriptBridge也是拦截URL来实现的调用原生功能,所以有一些代码跟之前iOS下JS与OC互相调用(一)中的HTML JS代码很相似...到此 利用WebViewJavascriptBridge实现JS 调用iOS Native 就完成了。...第六步、Native 调用 js 功能 Native 调用js 的功能,也需要先在js 中为要调用的功能注册一个别名。...也有一些缺点: 1、做一次交互,需要执行的js 与原生的交互步骤较多,至少有两次。 2、需要花较多的时间,理解WebViewJavascriptBridge的原理和使用步骤。
来实现JS 与OC 的互相调用的。...第四步,在HTML添加关键的js HMTL 里在调用Native 功能之前,要先添加一个js 方法,然后主动调用一次该方法。...WVJBIframe); setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0) } 如果你看过iOS...第五步,在js 中调用 Native 功能。 讲完过程,终于到了 js 调用Native 的用法了。...第六步,Native 调用 JS 功能。 Native 调用js 功能与 js 调用Native 的原理和流程一样。 1、现在js 中注册,Native 要调用的功能。
PhoneGap 是Nitobi软件公司2008年推出的一个框架,旨在弥补web 和iOS 之间的不足,使得web 和 iPhone SDK 之间的交互更容易。...安装Cordova ** Cordova 命令行需要运行在 Node.js 上,在 NPM 也可用。我们可以按照 platform specific guides 去安装别的依赖平台。...因此,在安装Cordova之前,要先安装Node.js 和 NPM(可以参考文章Mac 下安装Node.js)。...,那么就输入: cordova platform add ios 注意ios 要小写。...当然,如果我们想要在iOS 上运行 App,我们也可以输入: cordova run ios 也可以到指定目录下打开iOS 工程文件 ?
这里我们就用原生JS实现网页调用系统自带的分享功能,为网页增加一个分享功能!...二.实现原理: 三.JS代码: 建议:使用前先判断浏览器是否支持此功能,若不支持,可以设置其它替代方案;若支持,则可以直接使用此功能来进行分享操作! 1.判断浏览器是否支持: if (!
原生ajax 原文链接:http://caibaojian.com/ajax-jsonp.html 一.JS原生ajax ajax:一种请求数据的方式,不需要刷新整个页面: ajax的技术核心是 XMLHttpRe...… JS原生ajax与Jquery插件ajax深入学习 序言: 近来随着项目的上线实施,稍微有点空闲,闲暇之时偶然发现之前写的关于javascript原生xmlHttpRequest ajax方法以及后来...jquery插件ajax方法,于是就行了一些总结,因 … js原生Ajax的封装与使用 一.原生Ajax代码的封装如下: (function() { var XHR = { createStandardXHR...原生ajax 主要复习了php的pdo数据库操作,和js的ajax,真麻烦,希望jquery的ajax简单点. index.php: 1 2 [代码]JS原生Ajax&comma...;GET和POST javascript/js的ajax的GET请求: Jquery学习笔记(10)–ajax删除用户,使用了js原生ajax 主要复习了php的pdo数据库操作,和js的ajax,真麻烦
3.创建插件,配置插件 在插件中实现JS要调用的原生方法,插件要继承自CDVPlugin,示例代码如下: #import "CDV.h" @interface HaleyPlugin : CDVPlugin...这里有两种方式:第一种是直接执行JS,调用UIWebView 的执行js 方法。...使用这种方式时,在JS 调用原生功能时,必须设置执行成功的回调和执行失败的回调。...调用Native 功能 终于到重点了,JS想要调用原生代码,如何操作呢?...要调用原生,执行的是: // successCallback : 成功的回调方法 // failCallback : 失败的回调方法 // server : 所要请求的服务名字,就是插件类的名字 //
在上篇文章中讲述了使用UIWebView拦截URL的方式来处理JS与OC交互。 由于UIWebView比较耗内存,性能上不太好,而苹果在iOS 8中推出了WKWebView。...除了代理方法和WKWebView的使用不太一样,关于WKWebView更详尽的讲解和用法,还是自行搜索学习,本文重点还是讲解如何实现JS 与OC 互相调用。...2.拦截URL 使用WKNavigationDelegate中的代理方法,拦截自定义的URL来实现JS调用OC方法。...JS 方法 JS 调用OC 方法后,有的操作可能需要将结果返回给JS。...这时候就是OC 调用JS 方法的场景。 WKWebView 提供了一个新的方法evaluateJavaScript:completionHandler:,实现OC 调用JS 等场景。
所以这里就必须借助Phonegap的插件js脚本,通过js调用ios端或android端原生代码,然后再通过原生代码调用银联支付专门为移动客户端准备的sdk,去进行支付。...端代码,js脚本调用OC代码需要Phonegap提供的一个脚本插件支持: cordova.js (下载链接) 创建一个类Plugin, 继承Phonegap插件类:CDVPlugin, 还需要在配置文件...config.xml中配置一下,才能使用js调用Plugin类里面的方法 ?...@end 4、支付成功后,ios 控制器收到银联的支付结果,调用js脚本方法,处理后面逻辑: // ios支付成功后,收到银联通知跳转到其他页面去, info参数有三种状态:success, fail...通过js调用OC原生代码demo: github地址:https://github.com/xiaotanit/Tan_CordovaPlugin csdn地址: http://download.csdn.net
最近准备把之前用UIWebView实现的JS与原生相互调用功能,用WKWebView来替换。顺便搜索整理了一下JS 与OC 交互的方式,非常之多啊。...3.利用系统库JavaScriptCore,来做相互调用。(iOS 7推出的) 4.利用第三方库WebViewJavascriptBridge。...我去年也写过一个相互调用的总结:iOS下JS与原生OC互相调用(总结)。 写的比较粗糙,因此准备新开一个目录专题来记录JS 与原生交互的处理方式。...原因是因为要兼容iOS 6。 1.创建UIWebView,并加载本地HTML。 加载本地HTML的目的是便于自己写JS调用做测试,最终肯定还是加载网络HTML。...答:因为如果当前网页正使用window.location.href加载网页的同时,调用window.location.href去调用OC原生方法,会导致加载网页的操作被取消掉。
但是这处理原生数据的学习曲线对开发者来说有点大。 在本文中我们要分解并解释设备方向事件数据的实际应用,这样web开发者可以在他们的项目中应用它。...在这一节中我们做了如下工作: 用从deviceorientation获取的欧拉角数据构建了旋转矩阵 将旋转矩阵与屏幕方向匹配 将旋转矩阵与虚拟世界方向匹配 现在我们可以把所有代码放到一起然后在程序的每一次循环中调用它们...worldTransform); //R_w return finalMatrix; //[m11,m12,m13,m21,m22,m23,m31,m32,m33]} 我们现在就可以随时调用...为了在大多数安卓和iOS平台浏览器正确的运行,我们在执行旋转变化的过程中要注意到一下事情: 上文中的函数要求deviceOrientationData.alpha,deviceOrientationData.beta...iOS系浏览器目前返回的deviceOrientationData.alpha值是不基于罗盘的不够准确的值。
前言: UIActivityIndicatorView 活动指示器 ,就是一个转圈圈的控件(类似菊花)。 方法说明: 初始化方法 public init(ac...
领取专属 10元无门槛券
手把手带您无忧上云