一个其他原生Android app,这里简称 AAApp,通过以下代码把数据发送数据到uniapp
val bundle = Bundle()
bundle.putString("code", "123456")
intent.putExtras(bundle)
startActivity(intent)
uniapp 通过以下方法获取数据(这个onShow()是具体的业务页面,不是App.vue里面的onShow())
onShow() {
var dataFromNativeApp = plus.runtime.arguments
},
1.如果uniapp是通过“运行到手机或模拟器”编译到手机的话,那么dataFromNativeApp 是有数据的;
2.如果是通过Android 离线打包,那么dataFromNativeApp 也是有数据的;
3.如果通过云打包之后,那么dataFromNativeApp 是空的;
另外,很多人说可以延迟一下再获取数据,比如以下, 也是拿不到数据的
setTimeout(() => {
var dataFromNativeApp = plus.runtime.arguments
}, 3000);
1 个回复
r***@163.com (作者)
Android传递给uinapp的方式做了个调整:
使用以下方式替代上面的方式:
其中alpha是uniapp要配置的schema,在distribute-->android-->schemes配置(这是Android标签,iOS不太懂,估计也有对应的标签),然后在uniapp具体的业务页面的onShow()方法通过plus.runtime.arguments拿出来。
1.网上很多人说要在App.vue的onShow()方法取数据,如果有异常的话,大家可以试一下,反正我是在具体的页面的onShow()方法都能拿到。
2.有很多人说要要延后一点取数据,比如
但我也是不做延迟,也能正常拿到数据