微信内引导用户使用“在浏览器打开”开发参考

微信内引导用户使用"在浏览器打开"开发参考

准备工作

准备App Linking链接

参考文档:developer.huawei.com/consumer/cn...

准备H5落地页

H5页面主要逻辑:

1、应用已安装时,通过"在浏览器打开",拉起应用详情页;

2、应用未安装时,通过"在浏览器打开",跳转系统浏览器,在浏览器中拉起应用市场下载页;

参考代码:

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>test</title>
    <style>
        .container {
            display: flex;
            justify-content: center; /* 水平居中 */
            align-items: center; /* 垂直居中 */
            height: 100vh; /* 或者其他指定高度 */
        }
        .overlay {
            position: fixed; /* 固定定位 */
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.5); /* 半透明黑色背景 */
            display: flex;
            justify-content: flex-end;
            align-items: flex-start;
            color: white;
            z-index: 1000; /* 确保遮罩层在其他内容之上 */
        }
    </style>
    <script>
        function isHarmonyOSWeiXin() {
            const isHarmonyOS = (ua) => /OpenHarmony/i.test(ua);
            const isMicroMessenger = (ua) => /MicroMessenger/.test(ua);
            const ua = navigator.userAgent;
            const result = isHarmonyOS(ua) && isMicroMessenger(ua); // 判别为HarmonyOS设备的微信拉端
            return result;
        }
        
        function isHarmonyOS() {
            const isHarmonyOS = (ua) => /OpenHarmony/i.test(ua);
            const ua = navigator.userAgent;
            const result = isHarmonyOS(ua); // 判别为HarmonyOS设备
            return result;
        }
        
        function showOverlay() {
            if(isHarmonyOSWeiXin()) {
                document.querySelector('.overlay').style.display = 'flex';
            } else if(isHarmonyOS()) {
                location.href = "https://appgallery.huawei.com/app/detail?id=xxx" // XXX改成应用的bundleName
            }
        }
    </script>
</head>
<body onload="showOverlay()">
    <div class="overlay" style="display: none;font-size:70px;">
        点击右上角"..." ↗<br>
        选择"在浏览器打开"
    </div>
</body>
</html>

页面效果:

识别鸿蒙UA和鸿蒙微信UA方法

微信内置浏览器的UA标识示例如下:

scss 复制代码
Mozilla/5.0 (Phone; OpenHarmony 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 ArkWeb/4.1.6.1 Mobile MicroMessenger/8.0.7.34(0xf3100722) Weixin NetType/WIFI Language/zh_CN MMWEBID/7692 MMWEBSDK/202505040007 XWEB/1140227

建议鸿蒙微信UA识别OpenHarmony+MicroMessenger,参考代码如下:

ts 复制代码
const isHarmonyOS = (ua) => /OpenHarmony/i.test(ua);
const isMicroMessenger = (ua) => /MicroMessenger/.test(ua);
const ua = navigator.userAgent;
const result = isHarmonyOS(ua) && isMicroMessenger(ua); // 判别HarmonyOS设备的微信拉端 建议鸿蒙UA识别OpenHarmony,参考代码如下:
const isHarmonyOS = (ua) => /OpenHarmony/i.test(ua);
const ua = navigator.userAgent;
const result = isHarmonyOS(ua); // 判别为HarmonyOS设备的拉端

页面跳转逻辑开发实现

用户点击页面中"打开/下载"按钮时,根据UA判断在鸿蒙微信环境中,跳转H5落地页;

ts 复制代码
const result = isHarmonyOS(ua) && isMicroMessenger(ua); // 判别为HarmonyOS设备的微信拉端  
<br/>if(result) {  
// 跳转到AppLinking落地页  
location.href = 'https://www.example.com?param=value'; // AppLinking落地页  
} else {  
// 处理其他端引导逻辑  
}

H5落地页同样根据UA判断在鸿蒙微信环境中,引导用户点击右上角更多-"在浏览器打开"按钮;

用户点击"在浏览器打开"按钮后,如应用已安装出现应用选项,用户选择后打开应用,应用根据传入的applinking参数,跳转具体详情页;

如应用未安装出现浏览器选项,用户选择后浏览器后,浏览器加载H5页面,此页面根据UA判断在鸿蒙环境中,直接跳转应用市场下载页;

相关推荐
梦想不只是梦与想4 分钟前
鸿蒙 云测试:上架测试流程
harmonyos·鸿蒙·云测试
传奇开心果编程2 小时前
【ArkUI 练中学】第15课:UI 界面设计与实战
学习·ui·华为·harmonyos
HwJack203 小时前
【HarmonyOS开发小实践】ArkUI 动画系统属性动画、显式动画与路径动画
ui·性能优化·harmonyos
李游Leo5 小时前
HarmonyOS 7 实战开发 05:把页面做到可上线状态
ios·harmonyos
贾伟康8 小时前
【HarmonyOS 7新能力|043】可变字体工程封装:把接入逻辑放进可维护的分层结构
harmonyos·arkts·arkui·ui设计·可变字体
HarmonyOS_SDK8 小时前
HarmonyOS智慧多窗,让应用在任意窗口都“恰到好处”
harmonyos
传奇开心果编程11 小时前
【ArkUI 练中学】第14课:应用性能优化实战
学习·ui·华为·harmonyos
用户5930960097811 小时前
Flutter 鸿蒙化实战:flutter_tts 适配 OpenHarmony,文本转语音
harmonyos
威哥爱编程14 小时前
HarmonyOS 互动卡片实战:摇一摇触发静态转动态,前景元素出框
华为·harmonyos·arkts
威哥爱编程14 小时前
HarmonyOS 7 闪控窗实战:标准悬浮窗、侧边栏暂存与闪控球一键切换
华为·harmonyos·arkts