uniapp ios 微信分享如何获取plus.runtime.arguments连接参数/?_wechat_sdk_biz_data=

在uniapp开发中,iOS端微信分享后如何获取plus.runtime.arguments中的链接参数?特别是当链接包含_wechat_sdk_biz_data=时,安卓端可以正常获取,但iOS端无法解析到参数。请问该如何解决这个问题?

2 回复

在UniApp中,iOS微信分享后可以通过plus.runtime.arguments获取启动参数,但_wechat_sdk_biz_data是微信SDK内部参数,通常无法直接获取。

建议处理方式:

  1. 在App.vue的onLaunch中监听:
onLaunch: function() {
  // #ifdef APP-PLUS
  let args = plus.runtime.arguments
  if(args) {
    // 解析参数,但_wechat_sdk_biz_data可能被微信过滤
    console.log('启动参数:', args)
  }
  // #endif
}
  1. 实际开发中,微信分享更多使用:
  • 自定义分享链接携带业务参数
  • 通过uni.share API的success回调处理
  • 使用uni.getProvider获取分享状态

注意:微信SDK对参数有安全过滤,敏感参数可能被拦截,建议使用常规业务参数传递。


在 UniApp 中,iOS 平台通过微信分享后,从微信返回应用时,可以通过 plus.runtime.arguments 获取 URL 参数,包括 _wechat_sdk_biz_data。以下是实现步骤和示例代码:

实现步骤

  1. 监听应用激活事件:在应用从微信跳回时触发。
  2. 解析参数:从 plus.runtime.arguments 中提取并处理参数。

示例代码

App.vueonLaunch 或页面中监听 plusready 事件:

// 在 App.vue 的 onLaunch 或页面 mounted 中
document.addEventListener('plusready', () => {
  // 获取参数
  const args = plus.runtime.arguments;
  if (args) {
    // 解析参数(例如:URL 格式)
    const params = new URLSearchParams(args);
    const wechatData = params.get('_wechat_sdk_biz_data');
    if (wechatData) {
      console.log('微信分享参数:', wechatData);
      // 处理业务逻辑,例如存储或跳转
    }
  }
});

注意事项

  • iOS 配置:确保在 manifest.json 中正确配置 URL Scheme(与微信开放平台一致)。
  • 参数格式plus.runtime.arguments 可能为完整 URL,需自行解析(如使用 URLSearchParams)。
  • 测试:在真机调试,模拟器可能无法触发微信回调。

如果参数未获取到,检查微信 SDK 配置及分享链接格式。

回到顶部