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("請在xxx進行該操作");
}
} 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("請在xx進行該操作");
}
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("請在xxx進行該操作"); } return true; } }
鴻蒙原生方法的調用
if (window.JsCallbackToApp && window.JsCallbackToApp.call) {
var result = JsCallbackToApp.call(params);
}
// JsCallbackToApp 為方法名
// params 為參數,參數格式為json字符串
// result 為返回值,非必須
注意點:鴻蒙系統與安卓系統的調用方法的不同
