HarmonyOS 鸿蒙Next startVpnExtensionAbility传值wan解析不到parameters参数值
HarmonyOS 鸿蒙Next 三方vpn传值问题:startVpnExtensionAbility传值want,VpnExtensionAbility onCreate中为何解析不到parameters参数值
调用 startVpnExtensionAbility 传值want
let want : Want = {
deviceId: “”,
bundleName: “xxx”,
abilityName: “MyVpnExtAbility”,
parameters:{
// 自定义信息
param1: ‘来自AbilityTest页面的param1’,
param2: 123
}
}
, VpnExtensionAbility oncreate中解析不到 parameters,这是为啥,一直报undefined,、、
console.error(’----onCreate—,参数是${want.parameters?.param1}’);
下面转一下string,
console.error(’----onCreate—,参数:
${ want.parameters}’)
输出{“component.startup.newRules”:true,“moduleName”:“entry”,“ohos.aafwk.param.callerAbilityName”:"",“ohos.aafwk.param.callerBundleName”:“com.huawei.hmos.vpndialog”,“ohos.aafwk.param.callerPid”:42653,“ohos.aafwk.param.callerToken”:537271568,“ohos.aafwk.param.callerUid”:20020158},,
咋这么奇怪,都是按want文档去解析的啊
更多关于HarmonyOS 鸿蒙Next startVpnExtensionAbility传值wan解析不到parameters参数值的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
请教下,startVpnExtensionAbility后有弹窗但无法拉起Ability,onCreate都不走的。是module.json5配置的不对吗,这个‘vpn’是我自己加的
更多关于HarmonyOS 鸿蒙Next startVpnExtensionAbility传值wan解析不到parameters参数值的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
点击这个type,找到那个SDK对应目录下的moudle.json文件路径,去里面改type类型中增加vpn字段,保存,然后重新打开开发工具就可以了(有些时候遇到了改了没生效的情况); 还有一种可能是你的ablity路径没写对,名字没一致也有可能;
用全局文件缓存了,读写文件,或者进程间通信试试看吧,官方这个属实有点坑,得开关开vpn,才会有want值传入,走的onrequest方法可以读到,害
你好,你最后面贴的那些参数是 want 自带的,你看文档里面的 parameters 参数的说明https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-app-ability-want-V5#%E5%B1%9E%E6%80%A7
然后我试了下你的 want 写法,可以读到 parameters 呀。方面把你的 dmeo 贴上来一起看看不
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
额,别拿UIability试,这个三方vpn是由于会拉起授权弹窗,所以导致这个want不透传了,demo就是官方自己提供的demo,这个vpn功能不完善好些问题,好多人都遇到了的 https://gitee.com/openharmony/applications_app_samples/tree/master/code/BasicFeature/Connectivity/VPN
确实用startVpnExtensionAbility启动三方vpn时,在onCreate中接收不到parameters参数。找到了两个方法,可以解决 1、在vpn进程启动后,调用UIAbilityContext.connectServiceExtensionAbility与vpn进程进行链接,再在其中进行通信。同时可在onConnect中获取到从 want中传入的parameters参数。具体请参考: https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextconnectserviceextensionability 2、将参数存入首选项、数据库等,等到vpn初始化时再从中读取,具体用法请参考首选项:的 https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/reference/apis-arkdata/js-apis-data-preferences.md
是的,我后面用的数据库,可以读写文件,可以进程通信,只是没有传want值的简单,但是官方这块有bug,开关开vpn,才会有want值传入,走的onrequest方法可以读到
在HarmonyOS鸿蒙Next系统中,关于三方VPN传值问题,特别是startVpnExtensionAbility
方法传值want
,而在VpnExtensionAbility
的onCreate
方法中解析不到parameters
参数值的情况,通常与want
参数的构建和接收方式有关。
确保在调用startVpnExtensionAbility
时,want
参数正确设置了所有需要的键值对。want
应使用PutElement
方法添加参数,例如:
Want want;
want.PutElement("key", "value");
startVpnExtensionAbility(want);
在VpnExtensionAbility
的onCreate
方法中,接收参数应使用want
对象的GetElement
方法,确保键名一致:
String value = want.GetElement("key");
如果参数依然无法正确解析,检查以下几点:
- 确认
key
值在发送和接收时完全一致,包括大小写。 - 确保
want
对象在调用startVpnExtensionAbility
前未被修改或重置。 - 检查是否有权限问题或系统限制导致参数传递失败。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html