国外服装定制网站,免费的创建个人网站,php网站开发防注入,wordpress多麦通过startAbilityByType拉起垂类应用
使用场景
开发者可通过特定的业务类型如导航、金融等#xff0c;调用startAbilityByType接口拉起对应的垂域面板#xff0c;该面板将展示目标方接入的垂域应用#xff0c;由用户选择打开指定应用以实现相应的垂类意图。垂域面板为调用…通过startAbilityByType拉起垂类应用
使用场景
开发者可通过特定的业务类型如导航、金融等调用startAbilityByType接口拉起对应的垂域面板该面板将展示目标方接入的垂域应用由用户选择打开指定应用以实现相应的垂类意图。垂域面板为调用方提供统一的安全、可信的目标方应用同时降低调用方的接入成本。
约束限制
设备限制 HarmonyOS NEXT Developer Preview0及以上版本的设备
接口说明
接口startAbilityByType11 是[UIAbilityContext]和[UIExtensionContentSession]提供的支持基于垂域业务类型拉起垂域面板调用方通过指定特定的垂域业务类型即可拉起对应的垂域面板在垂域面板上将展示目标方接入的垂域应用。
type为navigation导航对应的wantParam:
属性名称含义数据类型是否缺省destinationLatitude终点纬度GCJ-02numbersceneType1或2时不可缺省destinationLongitude终点经度GCJ-02numbersceneType1或2时不可缺省sceneType意图取值 1路线规划 2导航 3 地点搜索number可缺省缺省时默认为1destinationName终点名称stringsceneType3时不可缺省originName起点名称路线规划场景有效string可缺省originLatitude起点纬度GCJ-02路线规划场景有效number可缺省originLongitude起点经度GCJ-02路线规划场景有效number可缺省vehicleType交通出行工具0驾车 1步行 2骑行 3公交路线规划场景有效number可缺省缺省时由应用自行处理
接入步骤
调用方接入步骤 导入ohos.app.ability.common模块。 import common from ohos.app.ability.common;构造接口参数并调用startAbilityByType接口。
示例
import common from ohos.app.ability.common;
let context getContext(this) as common.UIAbilityContext;
let wantParam: Recordstring, Object {sceneType:1,destinationLatitude:32.060844,destinationLongitude:118.78315,destinationName:xx市xx路xx号,originName:xx市xx公园,originLatitude:31.060844,originLongitude:120.78315,vehicleType:0
};
let abilityStartCallback: common.AbilityStartCallback {onError: (code: number, name: string, message: string) {console.log(code: code name: name message: message);}
}
context.startAbilityByType(navigation, wantParam, abilityStartCallback, (err) {if (err) {console.error(startAbilityByType fail, err: ${JSON.stringify(err)});} else {console.log(success);}
});效果示例图 目标方接入步骤 导入ohos.app.ability.UIAbility模块。 import UIAbility from ohos.app.ability.UIAbility;在module.json5中新增[linkFeature]属性并设置声明当前应用支持的特性功能从而系统可以从设备已安装应用中找到当前支持该特性的应用。 配置示例 {
abilities: [{skills: [{uris: [{scheme: maps, // 这里仅示意应用需确保这里声明的的uri能被外部正常拉起host: navigation,path: ,linkFeature: navigation // 声明应用支持导航功能},{scheme: maps, // 这里仅示意应用需确保这里声明的的uri能被外部正常拉起host: routePlan,path: ,linkFeature: routePlan // 声明应用支持路线规划功能},{scheme: maps, // 这里仅示意应用需确保这里声明的的uri能被外部正常拉起host: search,path: ,linkFeature: textSearch // 声明应用支持位置搜索功能}]}]}
]
}解析参数并做对应处理。 UIAbility::onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void在参数want.parameters中会携带Caller方传入的参数与调用方传入的有些差异如下表所示 属性名称含义数据类型是否缺省destinationLatitude终点纬度GCJ-02numbersceneType1或2时不可缺省destinationLongitude终点经度GCJ-02numbersceneType1或2时不可缺省destinationName终点名称stringsceneType3时不可缺省originName起点名称string可缺省存在时可用于展示路线规划页面originLatitude起点纬度GCJ-02number可缺省存在时可用于展示路线规划页面originLongitude起点经度GCJ-02number可缺省存在时可用于展示路线规划页面vehicleType交通出行工具0驾车 1步行 2骑行 3公交路线规划场景有效number可缺省缺省时由应用自行处理应用可根据[linkFeature]中定义的特性功能比如路线规划和导航结合接收到的参数开发不同的样式页面。
示例
import AbilityConstant from ohos.app.ability.AbilityConstant;
import hilog from ohos.hilog;
import UIAbility from ohos.app.ability.UIAbility;
import Want from ohos.app.ability.Want;
import window from ohos.window;let destinationLatitude:number;
let destinationLongitude:number;
let originLatitude:number | undefined;
let originLongitude:number | undefined;export default class EntryAbility extends UIAbility {onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {hilog.info(0x0000, testTag, %{public}s, Ability onCreate);destinationLatitude want.parameters?.destinationLatitude as number;destinationLongitude want.parameters?.destinationLongitude as number;originLatitude want.parameters?.originLatitude as number | undefined;originLongitude want.parameters?.originLongitude as number | undefined;}onWindowStageCreate(windowStage: window.WindowStage) {hilog.info(0x0000, testTag, %{public}s, Ability onWindowStageCreate: ${JSON.stringify(this.context)});const storage: LocalStorage new LocalStorage({destinationLatitude: destinationLatitude,destinationLongitude: destinationLongitude,originLatitude: originLatitude,originLongitude: originLongitude} as Recordstring, object);if(originLatitude ! undefined originLongitude ! undefined) {windowStage.loadContent(pages/IndexForNavigation, storage);} else {windowStage.loadContent(pages/IndexForRoutePlan, storage);}}
}