鸿蒙Next中如何通过const { url } = item打开链接并在浏览器中访问
在鸿蒙Next开发中,我通过const { url } = item获取到了链接地址,但不知道如何实现点击后跳转到系统浏览器打开这个链接。请问具体应该调用哪个API或方法?需要额外配置权限吗?
2 回复
在鸿蒙Next中,用const { url } = item拿到链接后,直接调用webview.loadUrl(url)就能在应用内打开。想跳外部浏览器?试试system.openUrl(url),让浏览器替你打工!
更多关于鸿蒙Next中如何通过const { url } = item打开链接并在浏览器中访问的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在鸿蒙Next(HarmonyOS NEXT)中,你可以使用WebviewController或系统能力来打开链接并在浏览器中访问。以下是具体方法:
-
使用WebviewController加载URL(适用于应用内打开):
import webview from '[@ohos](/user/ohos).web.webview'; // 创建WebviewController实例 let webviewController: webview.WebviewController = webview.createWebviewController(); // 加载URL webviewController.loadUrl(item.url); -
使用系统能力打开默认浏览器(推荐用于外部浏览器访问):
import abilityAccessCtrl from '[@ohos](/user/ohos).abilityAccessCtrl'; import common from '[@ohos](/user/ohos).app.ability.common'; // 获取上下文 let context = getContext(this) as common.UIAbilityContext; // 检查权限并启动浏览器 let abilityAccess = abilityAccessCtrl.createAtManager(); abilityAccess.requestPermissionsFromUser(context, ['ohos.permission.INTERNET']).then(() => { let want = { action: 'ohos.want.action.viewData', entities: ['entity.system.browsable'], uri: item.url // 使用item.url作为链接 }; context.startAbility(want).catch(err => { console.error('打开浏览器失败: ' + JSON.stringify(err)); }); }).catch(err => { console.error('权限申请失败: ' + JSON.stringify(err)); });
说明:
- 第一种方法在应用内通过Webview打开链接。
- 第二种方法调用系统浏览器,需要申请
INTERNET权限,并在module.json5中声明:{ "module": { "requestPermissions": [ { "name": "ohos.permission.INTERNET" } ] } }
根据需求选择合适的方式。如果要在外部浏览器打开,推荐使用第二种方法。

