vue H5与(Android、iOS)原生APP交互
16lz
2021-01-24
一:JS调用APP
1、封装公共方法:
/** *js调用APP * @params {*} Obj 传给app参数 */export function JSToNativeAPP(params) { let isAndroid = navigator.userAgent.indexOf('Android') > -1 || navigator.userAgent.indexOf('Adr') > -1; let isiOS = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); if (isAndroid) { window.android.JSToNative(JSON.stringify(params)) } else { // window.webkit.messageHandlers.JSToNative.postMessage(params) JSToNative(JSON.stringify(params)) }}
2、使用(组件内引入):
import { JSToNativeAPP } from "@/utils";
二:APP调用JS
在mounted() 生命周期中接收 NativeToJS挂载在window上(和原生协议好所有调用h5均是次方法,通过接收到的code值来区分不同含义)
//APP调jswindow.NativeToJS = function (e) { console.log(e)}
例:
mounted () { let that = this; window.NativeToJS = function (res) {//res 原生APP给的数据 // console.log(JSON.parse(res)); let data = JSON.parse(res) if(data.code == 3){//获取cookie code 为H5与app协商自定义,代表不同含义 if(data.data.cookie){ that.$cookies.set('SESSION',data.data.cookie,0); }else{ JSToNativeAPP({ "code": 401, "msg": '登录失效', "data": null }) } } } },
****:以上是在维护的项目中正使用的,如果有什么问题或有更好的方法,求告知
更多相关文章
- Android(安卓)IjkMediaPlayer编译支持RTSP播放,降低延时500ms左右
- Android获取手机号码和运营商信息的方法
- [置顶] Android(安卓)经典面试题整理(一)(附答案)
- Android(安卓)简单音乐播放器开发
- android应用:startActivityForResult使用实例
- 做谷歌地图是获得Map key的方法
- Android(安卓)6.0 ContextCompat中不包含CheckSelfPermission异
- 【Android(安卓)开发教程】自定义ContentProvider
- android xml解析 XmlPullParser的使用