在鸿蒙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')
注意事项:
- 网络权限配置:在
module.json5中添加权限:
{
"module": {
"requestPermissions": [
{
"name": "ohos.permission.INTERNET"
}
]
}
}
- 仅支持HTTPS和部分白名单HTTP地址
- 系统浏览器方式需要确保设备已安装浏览器应用
推荐根据场景选择:应用内浏览用Webview,跳转外部链接用系统浏览器。