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 为返回值,非必须
注意点:鸿蒙系统与安卓系统的调用方法的不同
