前面写的:本文是给web前端工程师的,iOS或者Android请移步stackoverflow。关于app的开发模式,这里就不多说了。1.判断modeljs需要使用不同的方法调用NativeiOS/Android函数,所以首先要做的是判断usermodel,代码如下:varu=navigator.userAgent.toLowerCase();varisApple=/iphone|ipad|ipod|ios/i.test(u);varisAndroid=/android/i.test(u);2、调用NativeiOS方法,通过js改变window.location值,实现调用iOS功能。此操作不是跳转,而是触发了一个即发即弃事件。代码如下://一个参数window.location='color://'+color;//两个参数window.location='myscheme://param1/'+value1+'/param2/'+value2;iOS端接收到的参数需要进行url编码,可以用encodeURIComponent函数处理。ps:关于URI和URLURI(UniformResourceIdentifier)UniformResourceIdentifierURL(UniformResourceLocator)UniformResourceLocatorURI包括URL和URN。如果URI标识一个人,则URL就像这个人的地址,而URN就是名字。3、调用NativeAndriod方法和iOS的区别在于Andriod接收的是中英文参数,没有进行编码操作。实现代码如下:if(window.AndroidBridge){window.AndroidBridge.changeNavbarBackground(color);}4、关于函数名约定,三方将根据业务需求定义一个通用的函数名。这个函数名通常由web前端工程师定义。例如,我想获取用户标识。按照驼峰命名规则,我们统一将函数名定义为getId()。iOS调试时,发现iOS接收到的function方法是getid(),导致bug。ok,问题解决,如有其他问题,请给我留言。如果对你有帮助,记得在下方推荐哦~~
