uni-app plus.runtime.arguments 获取参数问题

详细问题描述

贴一下我最终的解决方案。感谢官方技术解答

在 app.vue 中 methods 插入代码:

checkArguments() {

console.log('Shortcut-plus.runtime.launcher: ' + plus.runtime.launcher);

if (plus.runtime.launcher == 'shortcut') {

// 通过快捷方式启动,iOS平台表示通过3D Touch快捷方式,Android平台表示通过桌面快捷方式启动

try {

var cmd = JSON.parse(plus.runtime.arguments);

console.log('Shortcut-plus.runtime.arguments: ' + plus.runtime.arguments);

var type = cmd && cmd.type;

console.log(JSON.stringify( cmd ))

} catch (e) {

console.log('Shortcut-exception: ' + e);

}

}

}

然后在app.vue 中onLaunch 调用

this.checkArguments(); // 检测启动参数

// 重点是以下: 一定要监听后台恢复 !一定要

plus.globalEvent.addEventListener('newintent', (e)=>{

this.checkArguments(); // 检测启动参数

});


IOS下

使用场景: 当我通过 3d touch 启动APP时,我是在 onshow中监听 plus.runtime.arguments 参数,但是我发现 在onshow 中 每次打开都会获取这个参数,能否清理掉?

最好能有直接清理的api

--- 目前遇到的问题是,当我在 app.vue 中 onshow 获取 应用启动的参数:plus.runtime.arguments 这个是可行的, 那么当我APP打开以后,我APP进入到了后台 然后再恢复到前台 任然会走一次 onshow的生命周期 然后获取到 plus.runtime.arguments 中的参数, 那么我这参数就是重复了。 相当于我还会走一次 plus.runtime.arguments 获取到的参数的逻辑 这样肯定是不行的。

然后我把 获取 plus.runtime.arguments 放在 onLaunch 能解决重复获取的问题 但是当APP在后台恢复到前台的时候 这个生命周期肯定是不会生效的,毕竟这时候APP还在活跃,没有重启。。

所以需求就是:

能不能手动清理 plus.runtime.arguments 中的参数昵? 比如我onshow的时候获取 我onhide的时候 我自己去清理一下 plus.runtime.arguments 这个参数。

或者有没有其它更好的方案可以解决?

以上是 uni-app plus.runtime.arguments 获取参数问题 的全部内容, 来源链接: utcz.com/a/36720.html

回到顶部