HarmonyOS 鸿蒙Next当我使用web点击这个链接需要打开新的web页去加载,此时怎么判断并开启新的web页呢

发布于 1周前 作者 eggper 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next当我使用web在聊天页面中输入其他链接时,点击这个链接需要打开新的web页去加载,此时怎么判断并开启新的web页呢

当我使用web在聊天页面中输入其他链接时,点击这个链接需要打开新的web页去加载,此时怎么判断这个链接是否为聊天中的呢,必须让h5侧调用js桥来实现么,我看到拦截请求的api有很多,但是区分行为的没找到 

2 回复
聊天页面应该是有聊天纪录的,可以在拦截onLoadIntercept 时(查询记录判断是否是聊天中的)参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#onloadintercept10

更多关于HarmonyOS 鸿蒙Next当我使用web点击这个链接需要打开新的web页去加载,此时怎么判断并开启新的web页呢的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,当你需要在Web应用中处理链接点击事件并判断是否需要在新页面打开时,可以通过以下方式实现:

  1. 监听链接点击事件: 使用JavaScript监听页面中的链接点击事件。可以通过为所有<a>标签添加事件监听器来实现。

  2. 判断链接是否需要新页面打开: 在事件处理函数中,检查链接的target属性或自定义属性(如data-new-page)来判断是否需要在新页面打开。如果target="_blank"或自定义属性为真,则判定需要新页面打开。

  3. 使用鸿蒙API打开新页面: 在HarmonyOS的Web应用中,可以通过调用鸿蒙提供的API(如window.huawei.system.openUrl)来在新页面打开链接。注意,此API为鸿蒙特有,需在鸿蒙环境中才能使用。

  4. 实现代码示例

    document.querySelectorAll('a').forEach(a => {
        a.addEventListener('click', (event) => {
            if (a.target === '_blank' || a.getAttribute('data-new-page')) {
                event.preventDefault();
                window.huawei.system.openUrl({
                    url: a.href,
                    params: {
                        // 可选参数,如是否需要动画等
                    }
                });
            }
        });
    });
    

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部