使用鸿蒙设备开启另一台鸿蒙设备上的app
首先在我们的module.json5文件中申请分布式数据同步权限。
{
"name" : "ohos.permission.DISTRIBUTED_DATASYNC",
"reason": "$string:distributed_permission",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "inuse"
}
把上面这个对象放到我们的requestPermissions,没有的话就在module中自己写一个
以上配置name写我们要申请的权限名称。
reason表示我们要申请的原。
usedscene填一个对象,写需要使用这个权限的组件和调用权限的时机。
然后在我们的项目中写开启调用的逻辑,作为演示我在我的其中一个UI组件中定义了一个text组件并且添加点击了就会调用的逻辑。首先我们需要一个UIAbilityContext对象,所以我在我的组件中首先定义一个全局变量,变量类型为UIAbilityContext。
这是我的定义变量的代码:
let context = getContext(this) as common.UIAbilityContext;
这行代码用到的cmmon,是一个可以获取各类上下文对象的容器,通过导入来使用它,所以我们需要导入:import { common } from '@kit.AbilityKit';
接下来我为我的text组件来添加点击事件:context.startAbility({ })
我们的目的是简单开启林一台设备上的UI组件
我们需要填写的参数是{
'deviceId':'', 'bundleName':'', "abilityName": ''
}
第一个数值写我们要远程启动的设备的ID,第二个写我们要启动的app的包名,第三个写我们要启动的组件名,接下来介绍如何获得另一台设备的ID:
首先要保证两设备登陆同一个华为账号,且处于一个网络环境下,
然后我在我的测试UI组件中写一个aboutToAppear,
在aboutToAppear中首先创建一个AtManager对象,用这个对象调用requestPermissionsFromUser方法让用户来同意我们的权限,填入我们要申请权限组件的UIAbilityContext,填入我们要申请的权限的名称
['ohos.permission.DISTRIBUTED_DATASYNC']
我们要确认用户会同意权限,确认代码此处不写,那么成功后我们通过创建一个DeviceManager对象,创建对象填需要我们当前应用的包名作为参数,调用getAvailableDeviceList方法获取我们要操作的远程设备ID,在方法中填写一个回调函数,打印一下我们的返回值,返回值是一个对象数组,数组长度就是信任设备数量,其中对象的.networkId属性就是我们需要操控设备的ID。
最后在我们Text组件的点击事件中把需要的参数补全就实现了我们的功能了
context.startAbility({
'deviceId':'信任设备ID',
'bundleName':'app包名',
"abilityName": "组件名"
})
更多推荐

所有评论(0)