1. 程式人生 > 其它 >H5 判斷手機裝置型別及不同型別調起分享

H5 判斷手機裝置型別及不同型別調起分享

1.判斷手機裝置的函式

// js判斷是否是蘋果裝置
      function checkIsAppleDevice() {
        var u = navigator.userAgent,
          app = navigator.appVersion;
        var ios = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
        var iPad = u.indexOf("iPad") > -1;
        var iPhone = u.indexOf("iPhone") > -1 || u.indexOf("Mac") > -1;
        if (ios || iPad || iPhone) {
          return true;
        } else {
          return false;
        }
      }
      //js判斷是否為Android裝置
      function checkIsAndroidDevice() {
        var u = navigator.userAgent;
        if (u.indexOf("Android") > -1 || u.indexOf("Adr") > -1) {
          return true;
        } else {
          return false;
        }
      } 
//js判斷是否為鴻蒙系統 chos是鴻蒙webview的標識 function checkIsHarmonyOS() { var u = navigator.userAgent; if (u.indexOf("ohos") > -1) { return true; } else { return false; } }

 2.裝置型別的判斷

if (checkIsAppleDevice()) {
        return "ios";
} else if (checkIsHarmonyOS()) {
        return "HarmonyOS";
} else {
        return "andriod";
}

 注意點:鴻蒙系統的判斷要放在安卓的判斷之前,因為鴻蒙ua中包含了andriod.

3.具體分享的呼叫實現

 

function getShareUrl() {
      if ("ios" == xPhone) {
        if (
          window.webkit &&
          window.webkit.messageHandlers &&
          window.webkit.messageHandlers.requestShareUrl
        ) {
          window.webkit.messageHandlers.requestShareUrl.postMessage({
            title: $(".nickname").text() + "給你發來一張賀卡",
            summary: $(".word").text(),
            shareUrl: 'XXXXXXX', //分享地址及分享需要攜帶的引數
            image: $(".pic img").attr("src"),
          });
        } else {
          alert("請在大象新聞客戶端進行該操作");
        }
      } else if ("andriod" == xPhone) {
        if (window.Android && window.Android.requestShareUrl
) { window.Android.requestShareUrl( JSON.stringify({ title: $(".nickname").text() + "給你發來一張賀卡", summary: $(".word").text(), shareUrl: 'xxxxx', //分享連結及其攜帶引數 image: $(".pic img").attr("src"), }) ); } else { alert("請在大象新聞客戶端進行該操作"); } return true; } else { // 鴻蒙系統 if (window.requestShareUrl && window.requestShareUrl.call
) { window.requestShareUrl.call( JSON.stringify({ title: $(".nickname").text() + "給你發來一張賀卡", summary: $(".word").text(), shareUrl: 'xxxxxx' //分享連結及其攜帶引數
image: $(".pic img").attr("src"), }) ); } else { alert("請在大象新聞客戶端進行該操作"); } return true; } }

 

 鴻蒙原生方法的呼叫

if (window.JsCallbackToApp && window.JsCallbackToApp.call) {
    var result = JsCallbackToApp.call(params);
}

// JsCallbackToApp 為方法名
// params 為引數,引數格式為json字串
// result 為返回值,非必須

注意點:鴻蒙系統與安卓系統的呼叫方法的不同