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

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

准备工作

准备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判断在鸿蒙环境中,直接跳转应用市场下载页;

相关推荐
遇到困难睡大觉哈哈10 小时前
HarmonyOS 公共事件机制介绍以及多进程之间的通信实现(9000字详解)
华为·harmonyos
幽蓝计划14 小时前
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
开发语言·harmonyos
伍哥的传说14 小时前
鸿蒙系统(HarmonyOS)应用开发之实现电子签名效果
开发语言·前端·华为·harmonyos·鸿蒙·鸿蒙系统
Georgewu16 小时前
【HarmonyOS】应用开发拖拽功能详解
harmonyos
塞尔维亚大汉16 小时前
鸿蒙内核源码分析(构建工具篇) | 顺瓜摸藤调试鸿蒙构建过程
源码·harmonyos
kumalab19 小时前
HarmonyOS ArkTS卡片堆叠滑动组件实战与原理详解(含源码)
华为·harmonyos
别说我什么都不会20 小时前
【OpenHarmony】鸿蒙开发之xml2jsDemo
harmonyos
HarmonyOS_SDK1 天前
HarmonyOS免密认证方案 助力应用登录安全升级
harmonyos
zhanshuo1 天前
鸿蒙操作系统核心特性解析:从分布式架构到高效开发的全景技术图谱
harmonyos
塞尔维亚大汉1 天前
鸿蒙内核源码分析(编译过程篇) | 简单案例窥视编译全过程
源码·harmonyos