写在前面的话:本文面向web前端工程师,iOS 或 Android 请移步这里stackoverflow。关于app开辟形式,这里不再赘述。
一、推断机型
js 挪用 Native iOS/Android function 须要运用差别的要领,所以首先要做的是推断用户机型,代码以下:
var u = navigator.userAgent.toLowerCase();
var isApple = /iphone|ipad|ipod|ios/i.test(u);
var isAndroid = /android/i.test(u);
二、挪用 Native iOS 要领
经由过程 js 转变 window.location 值, 来完成挪用 iOS function ,这个操纵并非跳转,而是触发了一个 即发即弃 (a fire and forget) 事宜。代码以下:
//一个参数
window.location = 'color://' + color;
//两个参数
window.location = 'myscheme://param1/' + value1 + '/param2/' + value2;
iOS 端吸收参数须要举行 url 编码处置惩罚,能够运用 encodeURIComponent 函数处置惩罚。
ps:关于URI和URL
URI(Uniform Resource Identifier) 一致资本标识符
URL(Uniform Resource Locator) 一致资本定位符
URI包括URL和URN,假如URI标识一个人,URL比如这个人的住址,URN则是名字。
三、挪用 Native Andriod 要领
与 iOS 差别之处在于,Andriod 吸收中文英文参数,无需 encode 操纵。完成代码以下:
if(window.AndroidBridge) {
window.AndroidBridge.changeNavbarBackground(color);
}
四、关于函数称号商定
三方会依据营业需求定义一个通用的函数称号,这个函数称号通常是由web前端工程师定义的。比方,我想要猎取用户id,本着驼峰定名范例,我们将函数称号一致定义为 getId() 。在 iOS 调试时,发明iOS吸收到的函数要领为 getid() ,致使bug。
ok,题目解决了,若另有其他题目,迎接给我留言。假如对你有协助,记得在下方点个引荐吧~~