HarmonyOS鸿蒙Next中Want跳转浏览器问题
HarmonyOS鸿蒙Next中Want跳转浏览器问题 1。当我手机安装Aapp的时候,我们自己的Bapp点击跳转小红书时会打开Aapp,为什么? 我链接是小红书。
static readonly URL_RED_BOOK =
'https://www.xiaohongshu.com/user/profile/613881f500000000020205fc?xhsshare=CopyLink&appuid=613881f500000000020205fc&apptime=1690268402';
let context = getContext(this) as common.UIAbilityContext;
let wantInfo: Want = {
action: 'ohos.want.action.viewData',
entities: ['entity.system.browsable'],
abilityName: 'MainAbility',
//没加这个,html结尾的链接 拉起的不是浏览器,而且手机的预览器,mainabilty是浏览器的入口
uri: CommonConstants.URL_RED_BOOK
}
context.startAbility(wantInfo).then(() => {
}).catch((err: BusinessError) => {
Logger.info(TAG, "222jump error " + err)
})
更多关于HarmonyOS鸿蒙Next中Want跳转浏览器问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
本地测试是正常拉起小红书的
import { common, Want } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
URL_RED_BOOK = 'https://www.xiaohongshu.com/user/profile/613881f500000000020205fc?xhsshare=CopyLink&appuid=613881f500000000020205fc&apptime=1690268402';
build() {
Column() {
Button("打开").onClick((event: ClickEvent) => {
let context = getContext(this) as common.UIAbilityContext;
let wantInfo: Want = {
action: 'ohos.want.action.viewData',
entities: ['entity.system.browsable'],
uri: this.URL_RED_BOOK
}
context.startAbility(wantInfo).then(() => {
}).catch((err: BusinessError) => {
console.info("222jump error " + err)
})
})
}
.height('100%')
.width('100%')
}
}
bundleName和abilityName都为空会走隐式查询,否则会拿abilityName进行显式查询。这边测试浏览器abilityName不传也能正常拉起,或者同时加上bundleName:"com.huawei.hmos.browser"和abilityName:MainAbility。
更多关于HarmonyOS鸿蒙Next中Want跳转浏览器问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,想要实现跳转到浏览器的功能,可以使用Want
对象进行页面跳转。Want
是鸿蒙系统中用于描述意图的对象,可以指定目标应用和操作。具体实现步骤如下:
-
创建
Want
对象:首先需要创建一个Want
对象,并设置其action
属性为ohos.want.action.view
,这是用于表示查看操作的通用Intent。 -
设置URI:在
Want
对象中,通过设置uri
属性来指定要打开的网页地址。例如,uri
可以设置为https://www.example.com
。 -
调用
startAbility
:使用startAbility
方法,将Want
对象作为参数传入,系统会根据Want
中的信息启动相应的应用,这里是浏览器。
示例代码如下:
let want = {
action: 'ohos.want.action.view',
uri: 'https://www.example.com'
};
this.context.startAbility(want).then(() => {
console.log('跳转成功');
}).catch((err) => {
console.error('跳转失败', err);
});
通过上述步骤,可以实现从鸿蒙应用跳转到浏览器的功能。注意,确保设备上已安装支持该操作的浏览器应用。
在HarmonyOS鸿蒙Next中,使用Want对象跳转浏览器可以通过以下方式实现:
- 创建Want对象:设置
action
为"ohos.intent.action.VIEW"
,uri
为目标URL。 - 启动Ability:使用
startAbility
方法启动浏览器Ability。
示例代码如下:
Want want = new Want();
Operation operation = new Intent.OperationBuilder()
.withAction("ohos.intent.action.VIEW")
.withUri("https://www.example.com")
.build();
want.setOperation(operation);
try {
startAbility(want);
} catch (Exception e) {
e.printStackTrace();
}
确保设备上已安装默认浏览器,并处理可能的异常。