移动端混合开发

该代码段展示了如何判断H5页面是在iOS还是Android环境下运行,并定义了一个jsBridge函数来调用原生App的方法。在iOS中使用webkit.messageHandlers进行通信,而在Android端则通过暴露的jsBridge对象调用方法。
摘要由CSDN通过智能技术生成

1、判断h5运行平台

const ua = window.navigator.userAgent;
let AppSource = "";
if (
  ua.match(/iPad/) ||
  ua.match(/iPhone/) ||
  ua.match(/iPod/) ||
  ua.match(/ios/)
) {
  AppSource = "ios";
} else if (/android_poly/i.test(ua)) {
  AppSource = "android";
}
Vue.prototype.$AppSource = AppSource; // vue2
app.config.globalProperties.AppSource = AppSource; // vue3

2、h5调用app方法

/**
 * APP端交互
 * @param method 交互方法
 * @param params 给app传输数据
 * @param callback 非app环境处理
 */
const jsBridge = (method: string, params: any, callback?: () => any): void => {
  if (platform === "ios") {
    if (window.webkit.messageHandlers[method]) {
      window.webkit.messageHandlers[method].postMessage(params);
    } else {
      callback && callback();
    }
  } else if (platform === "android") {
  	// android是安卓端暴露出的jsBrige对象,method是方法
    if (window.android[method]) {
      if (params) {
        window.android[method](JSON.stringify(params));
      } else {
        window.android[method]();
      }
    } else {
      callback && callback();
    }
  } else {
    // 否则是H5页面
    callback && callback();
  }
};
export default jsBridge;
android

在这里插入图片描述
在这里插入图片描述

ios

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值