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

3 回复

本地测试是正常拉起小红书的

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是鸿蒙系统中用于描述意图的对象,可以指定目标应用和操作。具体实现步骤如下:

  1. 创建Want对象:首先需要创建一个Want对象,并设置其action属性为ohos.want.action.view,这是用于表示查看操作的通用Intent。

  2. 设置URI:在Want对象中,通过设置uri属性来指定要打开的网页地址。例如,uri可以设置为https://www.example.com

  3. 调用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对象跳转浏览器可以通过以下方式实现:

  1. 创建Want对象:设置action"ohos.intent.action.VIEW"uri为目标URL。
  2. 启动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();
}

确保设备上已安装默认浏览器,并处理可能的异常。

回到顶部