uni-app 【已解决】iOS 17.6.1 plus.runtime.arguments 无法获取微信小程序 app-parameter所带参数
uni-app 【已解决】iOS 17.6.1 plus.runtime.arguments 无法获取微信小程序 app-parameter所带参数
| 开发环境 | 版本号 | 项目创建方式 |
|------------------|----------|--------------|
| Windows | win11 23H2 | HBuilderX |
| HBuilderX | 4.24 | |
| 手机系统 | 版本号 | |
| iOS | iOS 17 | |
| 手机厂商 | | |
| 苹果 | | |
| 手机机型 | | |
| XS | | |
| 页面类型 | | |
| vue | vue2 | |
# 操作步骤:
-
# 预期结果:
安卓、苹果 日志均打印正确参数 11111
# 实际结果:
-
# bug描述:
-
2 回复
怎么解决的
针对你提到的在uni-app中iOS 17.6.1环境下plus.runtime.arguments
无法获取微信小程序app-parameter
所带参数的问题,这通常涉及到不同平台间的参数传递机制差异。以下是一个如何在uni-app中处理微信小程序启动参数并尝试在App端获取的示例代码。
微信小程序端
首先,在微信小程序端,你需要通过app.json
配置app-parameter
参数,并在App
构造器中处理这些参数。然后,你可以通过全局变量或者其他方式将这些参数传递给App的其他页面或组件。
app.json
{
"pages": [
"pages/index/index"
],
"window": {
"navigationBarTitleText": "Demo"
},
"app-plus": {
"app-parameter": "your_parameter_here" // 示例参数
}
}
App.js
App({
onLaunch: function (options) {
// 微信小程序启动时传递的参数
console.log('App Launch Options:', options);
// 假设你要传递这个参数到App的其他部分
this.globalData.appParameter = options.query.yourParam || ''; // 替换为你的实际参数获取方式
}
});
uni-app端
在uni-app端,你需要处理从微信小程序跳转到App时的参数传递。由于plus.runtime.arguments
在iOS 17.6.1上可能无法直接获取微信小程序的app-parameter
,你可以考虑使用其他方式,比如通过URL Scheme或者服务器中转。
main.js
// 检查是否从微信小程序跳转而来,并尝试获取参数
if (window.plus && plus.runtime && plus.runtime.launcher) {
const launcher = plus.runtime.launcher;
// 尝试从launcher对象中获取参数(这里可能需要根据实际情况调整)
const appParameter = launcher.extra || '';
console.log('App Parameter from WeChat Mini Program:', appParameter);
// 如果参数为空或者获取失败,考虑使用其他方式获取
// 比如通过URL Scheme解析参数
const queryString = window.location.search;
const params = new URLSearchParams(queryString);
const anotherParam = params.get('anotherParam') || '';
console.log('App Parameter from URL:', anotherParam);
}
注意事项:
- 上述代码仅作为示例,实际使用时需要根据你的具体业务逻辑进行调整。
plus.runtime.launcher
在不同平台上的行为可能有所不同,需要测试确认。- 如果
plus.runtime.arguments
确实无法获取微信小程序传递的参数,建议使用URL Scheme或其他机制来传递参数。 - 确保你的uni-app已经正确配置了对微信小程序的跳转支持。