HarmonyOS 鸿蒙Next:浏览器打开一个h5页面,在h5页面通过标准的js语句通过scheme唤起app并传入参数

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:浏览器打开一个h5页面,在h5页面通过标准的js语句通过scheme唤起app并传入参数

浏览器打开一个h5页面,在h5页面通过标准的js语句通过scheme唤起app并传入参数

2 回复
可以使用华为浏览器支持deeplink拉起能力

华为浏览器支持外部应用拉起浏览器
打开浏览器打开网页的want参数为action :ohos.want.action.viewData, uri为拉起的网页链接
 
{
  "actions": "ohos.want.action.viewData",
  "uri": url
}

打开浏览器打开搜索的want参数为action :ohos.want.action.search, uri为搜索词

 
{
  "actions": "ohos.want.action.search",
  "uri": 搜索词
}

action和uri为隐式拉起的必填属性。如果需要显示拉起则需要新增两个属性

bundleName: "com.huawei.hmos.browser",
abilityName: "MainAbility",



华为浏览器支持拉起外部应用
浏览器访问网页经常会遇到deeplink的场景。当前处理方案统一为使用AMS系统能力startAbility去隐式拉起。传递的want参数为
 
{

“actions”: “ohos.want.action.viewData”, “uri”: deeplink链接

}


以美团为例。美团网页需要给自己的应用拉活,因此在网页中添加按钮引导用户拉起美团应用。网页端直接提示打开美团应用按钮绑定点击事件window.open(imeituan://www.meituan.com?url=XXX)>,点击该按钮,打开网页web端收到的url为imeituan://www.meituan.com?url=XXX



美团应用想被成功拉起则需要美团应用在工程的model.json5文件中配置abilities的skills中配置


需要注意deeplink链接的scheme协议头必须网页拉起的链接的应用配置的保持一致。
 
{
“actions”: [
“ohos.want.action.viewData”
],
“uris”: [
{
“scheme”: “imeituan”
}
]
}


另外浏览器不会对deeplink链接做任何解析或处理,只会原封不动的传递给拉起的应用。因此第三方应用只需要自己的网页端和应用端协商好url规则,自己去做解析打开对应页面即可

更多关于HarmonyOS 鸿蒙Next:浏览器打开一个h5页面,在h5页面通过标准的js语句通过scheme唤起app并传入参数的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统上,若要通过浏览器中的H5页面使用标准的JavaScript语句通过scheme唤起App并传入参数,可以通过以下方式实现:

  1. 定义URL Scheme:首先,在你的鸿蒙App中定义一个自定义的URL Scheme。这需要在App的配置文件中进行设置,确保该Scheme是唯一的,并且能够被系统识别。

  2. JavaScript调用:在H5页面中,使用JavaScript的window.location.href或者window.open方法,构建并触发一个包含所需参数的URL。例如:

    var appId = "your_app_id";
    var param = "your_param";
    window.location.href = "your_scheme://" + appId + "/" + param;
    

    替换your_schemeyour_app_idyour_param为实际值。

  3. App接收参数:在鸿蒙App中,通过监听URL Scheme的启动事件,获取并解析传入的参数。鸿蒙系统提供了相应的API来捕获和处理这些URL Scheme请求。

  4. 处理逻辑:根据解析出的参数,执行相应的业务逻辑。

确保App和H5页面都在同一设备上,并且App已经安装且能够响应定义的URL Scheme。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部