1024大白菜
1024大白菜
  • 发布:2021-10-13 18:37
  • 更新:2021-10-14 08:43
  • 阅读:523

plus.runtime.arguments云打包之后获取参数异常【报Bug】

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 11.6 (20G165)

HBuilderX类型: 正式

HBuilderX版本号: 3.2.9

手机系统: Android

手机系统版本号: Android 11

手机厂商: 小米

手机机型: 红米k20pro

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

// #ifdef APP-PLUS
console.log(plus.runtime.launcher,"====启动来源")
console.log(plus.runtime.arguments,"参数接收")
try {
const value = uni.getStorageSync('userinfo');
if (value) {
uni.showModal({
title:'Shortcut-plus.runtime.arguments:1 ' + plus.runtime.arguments
})
if (plus.runtime.arguments&&uni.getSystemInfoSync().platform == 'android') {
this.checkArguments();
}
plus.globalEvent.addEventListener('newintent', (e)=>{
uni.showModal({
title:'后台运行' + plus.runtime.arguments
})
if (plus.runtime.arguments&&uni.getSystemInfoSync().platform == 'android') {
this.checkArguments();
}
});
} else {

			}  
		} catch (e) {  
			// error  
		}  
		// #endif

操作步骤:

APP先打开运行,然后再使用企业微信的jsdk调用起APP,APP使用plus.runtime.arguments获取不到参数

预期结果:

打包之后,APP后台运行时,被企业微信jsdk调起可以获取到参数

实际结果:

App先打开之后,被企业微信jsdk唤起,plus.runtime.arguments获取到的参数为”“,App未打开的状态下被唤起,可以获取到参数

bug描述:

在自定义基座运行时被企业微信的jsdk调用,plus.runtime.arguments这个API在 应用没启动、应用在后台的时候都能获取到参数,但是打包之后应用运行在后台获取不到参数,直接就获取到""

2021-10-13 18:37 负责人:无 分享
已邀请:
1024大白菜

1024大白菜 (作者)

救救孩纸啊,为什么自定义基座正常,云打包之后的就异常了

DCloud_Android_ST

DCloud_Android_ST

自定义基座也是云打包生成的才对。可以使用原生跳转测试一下plus.runtime.arguments

  • 1024大白菜 (作者)

    原生不会呀,尴尬了,我使用plus.runtime.arguments 需要在manifest.json配置东西吗?


    2021-10-13 19:21

  • DCloud_Android_ST

    回复 c***@163.com: 不需要 plus.runtime.arguments 它主要存储原生启动传递的参数


    2021-10-13 19:33

  • DCloud_Android_ST

    你可以提供具体的测试环境给我们 我们复现一下


    2021-10-13 19:34

  • 1024大白菜 (作者)

    回复 DCloud_Android_ST: 环境没办法提供,但是我可以提供操作视频给到你们这边方便的话加QQ聊吗


    2021-10-13 19:42

  • 1024大白菜 (作者)

    回复 DCloud_Android_ST: 使用了let intent = plus.android.importClass("android.content.Intent");

    intent = plus.android.runtimeMainActivity().getIntent();

    let cmd = intent.getStringExtra("launchParam");

    原生类来接收 依旧是自定义基座正常 打包之后异常


    2021-10-13 20:31

1024大白菜

1024大白菜 (作者)

搞了一晚上,还是打包之后就异常,非常无奈

  • DCloud_Android_ST

    你现在的问题是应用未启动 ,启动后可以获取到arguments 如果已经启动了在执行则获取不到。换个手机试下呢


    2021-10-14 10:16

  • 1024大白菜 (作者)

    回复 DCloud_Android_ST: 换了一台华为也是一样的效果,在未启动的时候就能接收到参数并且跳到指定页面,运行中就不行了


    2021-10-14 14:43

  • DCloud_Android_ST

    回复 c***@163.com: 你打一个自定义基座 把日志都打印出来 我这边测试看看 appid记得提供一下


    2021-10-14 15:36

  • 1024大白菜 (作者)

    回复 DCloud_Android_ST: 自定义基座没有异常,自定义基座的日志指的是console么,打包之后的能打出日志么?__UNI__D745DF4 这个是APP的id


    2021-10-14 16:31

  • 1024大白菜 (作者)

    回复 DCloud_Android_ST: 问了相关的安卓大哥,他们说是onNewIntent里面没处理参数,但是自定义基座表现又是正常的


    2021-10-14 17:17

  • 1024大白菜 (作者)

    回复 DCloud_Android_ST: 能复现这个问题吗


    2021-10-15 09:05

  • DCloud_Android_ST

    回复 c***@163.com: 没复现 写demo云打包然后通过原生intent跳转测试 不管是首次启动还是二次启动都可以 你可以试下 https://bdpkg-tencent.dcloud.net.cn/20211014/21299450-2ccd-11ec-88a2-6173f7fbc455/Pandora.apk 原生代码Intent intent = new Intent();

    intent.setClassName("uni.UNI4F35899", "io.dcloud.PandoraEntry");

    intent.putExtra("test", "aaabbb");

    startActivity(intent);


    2021-10-15 10:52

该问题目前已经被锁定, 无法添加新回复