HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第50天,使用隐式Want打开网址

发布于 1周前 作者 songsunli 来自 鸿蒙OS

HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第50天,使用隐式Want打开网址

1、使用隐式Want打开网址

前提条件

设备上安装了一个或多个浏览器。

浏览器应用中通过module.json5配置如下:

"skills": [
  {
    "entities": [
      "entity.system.browsable"
      // ...
    ],
    "actions": [
        "ohos.want.action.viewData"
        // ...
    ],
    "uris": [
      {
        "scheme": "https",
        "host": "www.test.com",
        "port": "8080",
        // prefix matching
        "pathStartWith": "query",
        "type": "text/*"
      },
      {
        "scheme": "http",
        // ...
      }
      // ...
    ]
  },
]

2、开发步骤

在自定义函数implicitStartAbility内使用隐式Want启动Ability。

async implicitStartAbility() {
    try {
        let want = {
            // uncomment line below if wish to implicitly query only in the specific bundle.
            // bundleName: "com.example.myapplication",
            "action": "ohos.want.action.viewData",
            // entities can be omitted.
            "entities": [ "entity.system.browsable" ],
            "uri": "https://www.test.com:8080/query/student",
            "type": "text/plain"
        }
        let context = this as common.UIAbilityContext;
        await context.startAbility(want)
        console.info(`explicit start ability succeed`)
    } catch (error) {
        console.info(`explicit start ability failed with ${error.code}`)
    }
 }

匹配过程如下:

  • want内action不为空,且被skills内action包括,匹配成功。
  • want内entities不为空,且被skills内entities包括,匹配成功。
  • skills内uris拼接为 https://www.test.com:8080/query* (*为通配符)包含want内uri,匹配成功。
  • want内type不为空,且被skills内type包含,匹配成功。

当有多个匹配应用时,会被应用选择器展示给用户进行选择。


更多关于HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第50天,使用隐式Want打开网址的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

能不能有点不一样的,都是抄官方文档

更多关于HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第50天,使用隐式Want打开网址的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


你好,我自己能力有限,学习官方文档,我没有说我自己原创,都是转载的。

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

哈哈!!,

在HarmonyOS中,使用隐式Want打开网址可以通过startAbility方法实现。隐式Want是指不指定具体的Ability,而是通过Action、URI等条件来匹配目标Ability。以下是一个简单的示例代码:

import featureAbility from '@ohos.ability.featureAbility';

let want = {
    action: 'ohos.intent.action.VIEW',
    uri: 'https://www.example.com'
};

featureAbility.startAbility({
    want: want
}).then((data) => {
    console.log('Ability started successfully');
}).catch((error) => {
    console.error('Failed to start ability', error);
});

在这个示例中,action设置为'ohos.intent.action.VIEW',表示要执行查看操作,uri设置为要打开的网址。featureAbility.startAbility方法会根据want中的条件找到匹配的Ability并启动它。如果成功启动,会输出'Ability started successfully',否则会捕获并输出错误信息。

在HarmonyOS中,使用隐式Want打开网址可以通过调用系统的浏览器应用来实现。首先,创建一个Want对象,设置其actionohos.intent.action.VIEW,并在uri属性中指定要打开的网址。然后,使用startAbility方法启动该Want。示例代码如下:

import common from '@ohos.app.ability.common';

let want = {
  action: 'ohos.intent.action.VIEW',
  uri: 'https://www.example.com'
};

let context = getContext(this) as common.UIAbilityContext;
context.startAbility(want).then(() => {
  console.log('Successfully opened the URL.');
}).catch((err) => {
  console.error('Failed to open the URL:', err);
});

这段代码将尝试使用默认浏览器打开指定的网址。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!