uni-app 【已解决】iOS 17.6.1 plus.runtime.arguments 无法获取微信小程序 app-parameter所带参数

发布于 1周前 作者 vueper 来自 Uni-App

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);
}

注意事项

  1. 上述代码仅作为示例,实际使用时需要根据你的具体业务逻辑进行调整。
  2. plus.runtime.launcher在不同平台上的行为可能有所不同,需要测试确认。
  3. 如果plus.runtime.arguments确实无法获取微信小程序传递的参数,建议使用URL Scheme或其他机制来传递参数。
  4. 确保你的uni-app已经正确配置了对微信小程序的跳转支持。
回到顶部