鸿蒙Next ArkTS中如何通过浏览器打开URL

在鸿蒙Next中使用ArkTS开发时,如何通过代码调用系统浏览器打开指定的URL链接?需要具体的实现方法和示例代码。

2 回复

在ArkTS中,用WebviewController加载URL就行。简单几行代码,浏览器就乖乖听话,像这样:

let controller: WebviewController = new WebviewController();
controller.loadUrl("https://example.com");

搞定!代码一跑,网页就蹦出来了。

更多关于鸿蒙Next ArkTS中如何通过浏览器打开URL的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next的ArkTS中,可以通过WebviewController加载URL,或使用系统能力调用默认浏览器打开。以下是两种实现方式:

1. 使用Webview组件(应用内打开)

在页面布局中嵌入Webview,适合应用内浏览:

import webview from '@ohos.web.webview';

@Entry
@Component
struct WebPage {
  controller: webview.WebviewController = new webview.WebviewController();

  build() {
    Column() {
      // 加载指定URL
      Web({ src: 'https://example.com', controller: this.controller })
        .width('100%')
        .height('100%')
    }
  }
}

2. 调用系统浏览器(外部打开)

使用startAbility跳转到系统浏览器:

import AbilityConstant from '@ohos.app.ability.AbilityConstant';
import Want from '@ohos.app.ability.Want';

async openInSystemBrowser(url: string) {
  let want: Want = {
    action: 'ohos.want.action.viewData',
    entities: ['entity.system.browsable'],
    uri: url  // 示例: 'https://example.com'
  };
  
  try {
    await context.startAbility(want, {
      windowMode: AbilityConstant.WindowMode.FLOATING
    });
  } catch (err) {
    console.error(`打开浏览器失败: ${err.code}, ${err.message}`);
  }
}

// 调用示例
this.openInSystemBrowser('https://developer.harmonyos.com')

注意事项:

  1. 网络权限配置:在module.json5中添加权限:
{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
  }
}
  1. 仅支持HTTPS和部分白名单HTTP地址
  2. 系统浏览器方式需要确保设备已安装浏览器应用

推荐根据场景选择:应用内浏览用Webview,跳转外部链接用系统浏览器。

回到顶部