HarmonyOS 鸿蒙Next App外部浏览器唤起
HarmonyOS 鸿蒙Next App外部浏览器唤起
看一下App Linking能否满足需求:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-linking-startup-V5#section11648192453716 或者参考一下应用间跳转场景开发实践:https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-jump-between-application-V5#section17457164153818
如:
Button("拉起浏览器").onClick(() => {
let context = getContext(this) as common.UIAbilityContext;
let want: Want = {
action: "ohos.want.action.viewData",
bundleName: 'com.huawei.hmos.browser',
abilityName: 'MainAbility',
uri: "https://www.baidu.com/",
};
console.log("want", want)
context.startAbility(want)
}).margin(10)
entity.system.browsable指示浏览器类别。
“entities"列表中包含"entity.system.browsable”。
在应用的module.json5文件中进行如下配置,可以声明应用关联的域名地址,并开启域名校验开关。
“entities"列表中必须包含"entity.system.browsable”。
“actions"列表中必须包含"ohos.want.action.viewData”。
“uris"列表中必须包含"scheme"为"https"且"host"为域名地址的元素,可选属性包含"path”、“pathStartWith"和"pathRegex”,具体请参见“uri匹配规则”。
"domainVerify"设置为true,表示开启域名校验开关。
例如,声明应用关联的域名是www.example.com,则需进行如下配置。
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-linking-startup-V5#section1101111611317
关于ArkWeb 通过App Linking 拉起目标APP(目标App冷启动),在 onCreate 回调里 无法获取到App Linking 链接
更多关于HarmonyOS 鸿蒙Next App外部浏览器唤起的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙系统中,Next App外部浏览器唤起通常可以通过URI(统一资源标识符)的方式来实现。具体步骤如下:
-
构建URI:首先,需要构建一个包含目标网页地址的URI。这个URI应该符合标准的URL格式,包括协议(如http或https)、域名以及可选的路径和查询参数。
-
使用Intent:在鸿蒙应用中,可以通过Intent机制来唤起外部浏览器。创建一个Intent对象,并设置其Action为
Intent.ACTION_VIEW
,同时设置Data为之前构建的URI。 -
启动Activity:调用
startActivity
方法,并传入之前创建的Intent对象。系统会根据Intent中的信息,找到能够处理该Action和URI的应用(通常是浏览器),并启动它。 -
处理权限和异常:确保应用具有唤起外部应用的权限,并妥善处理可能出现的异常,如Intent找不到匹配的应用等。
示例代码(简化版,未包含完整错误处理):
Uri uri = Uri.parse("https://www.example.com");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
注意:以上代码仅为示例,并非鸿蒙系统实际使用的代码,鸿蒙系统使用其特定的API和框架来实现类似功能。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html