uni-app原生安卓调用问题:未打开uni-app时plus.runtime.arguments可获取参数,后台运行时无法获取参数
uni-app原生安卓调用问题:未打开uni-app时plus.runtime.arguments可获取参数,后台运行时无法获取参数
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | 10.13.5 | HBuilderX |
### 操作步骤:
- 安卓原生App通过协议或包名调用uniapp,uniapp后台运行时接收原生安卓参数
### 预期结果:
- 安卓原生App调用uniapp,uniapp后台运行时能正常接收参数
### 实际结果:
- 安卓原生App调用uniapp,uniapp后台运行时不能接收参数
### bug描述:
- 原生安卓调用uni-app,未打开uni-app情况plus.runtime.arguments可以获取到参数,后台运行时无法获取参数

更多关于uni-app原生安卓调用问题:未打开uni-app时plus.runtime.arguments可获取参数,后台运行时无法获取参数的实战教程也可以访问 https://www.itying.com/category-93-b0.html
可以看下newintent是否触发
更多关于uni-app原生安卓调用问题:未打开uni-app时plus.runtime.arguments可获取参数,后台运行时无法获取参数的实战教程也可以访问 https://www.itying.com/category-93-b0.html
newintent偶尔触发,有时候未触发,目前原生安卓调用方式换成schemes调用传参数,华为手机未出现接收不到参数问题
回复 x***@163.com: newintent不触发这种情况只能是非后台运行 否则必然会触发才对
回复 DCloud_Android_ST: 我监听了是后台运行的,但是这个还是没执行呢
回复 x***@163.com: 所有手机都能复现问题吗
回复 x***@163.com:那你提供下测试环境 shutao@dcloud.io
这是一个典型的应用生命周期问题。当uni-app处于后台时,plus.runtime.arguments仅在应用启动时被初始化一次,后续通过协议或包名再次调用时,该参数不会自动更新。
解决方案是在App.vue的onShow生命周期中主动监听并处理新的调用参数。具体实现如下:
// App.vue
export default {
onShow() {
// 每次应用切换到前台时,检查是否有新的调用参数
const args = plus.runtime.arguments;
if (args) {
// 处理参数逻辑
console.log('接收到参数:', args);
// 可以在这里触发全局事件或更新状态管理
uni.$emit('appLaunchArgs', args);
}
},
onHide() {
// 应用进入后台时清理参数(可选)
// plus.runtime.arguments = null;
}
}


