uni-app wap2app打包成ios项目时 plus.runtime.arguments ios参数为空

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

uni-app wap2app打包成ios项目时 plus.runtime.arguments ios参数为空

开发环境 版本号 项目创建方式
Windows 10 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:10

HBuilderX类型:正式

HBuilderX版本号:3.99

手机系统:iOS

手机系统版本号:iOS 14

手机厂商:苹果

手机机型:14

页面类型:vue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX

示例代码:

```javascript
setTimeout(() => {
    try {
        if (plus && plus.runtime.arguments) {
            this.oaLogin()
        }
    } catch (e) {}
}, 500)

操作步骤:

  • 用链接转跳到app

预期结果:

  • 有正常参数返回

实际结果:

  • 参数返回为空

bug描述: 用uniapp开发的h5页面,用wap2app打包成ios的安装包
IOS下plus.runtime.arguments不能获取到URL Scheme协议参数
获取代码是放在 uniapp开发的h5里
pages.json里的condition 节点也删掉了

console.log({来源:plus.runtime.launcher});
//返回的依旧是 default

2 回复

有没有大佬看一下~~~


在 uni-app 中使用 wap2app 打包成 iOS 项目时,plus.runtime.arguments 在 iOS 上获取不到参数,可能是由于以下原因导致的:

1. iOS 平台限制

iOS 平台对于通过 URL Scheme 或 Universal Links 传递的参数处理方式与 Android 不同。plus.runtime.arguments 在 iOS 上可能无法直接获取到参数。

2. URL Scheme 配置问题

如果你是通过 URL Scheme 启动应用,确保在 iOS 项目中正确配置了 URL Scheme,并且在启动时传递了正确的参数。

  • manifest.json 中配置 URL Scheme:
    {
      "app-plus": {
        "distribute": {
          "ios": {
            "urlschemewhitelist": ["yourappscheme"]
          }
        }
      }
    }
  • 在 iOS 项目中,确保在 Info.plist 中正确配置了 URL Scheme。

3. Universal Links 配置问题

如果你是通过 Universal Links 启动应用,确保在 iOS 项目中正确配置了 Universal Links,并且在启动时传递了正确的参数。

  • manifest.json 中配置 Universal Links:
    {
      "app-plus": {
        "distribute": {
          "ios": {
            "universalLinks": {
              "paths": ["/yourpath/*"],
              "applinks": "yourdomain.com"
            }
          }
        }
      }
    }
  • 在 iOS 项目中,确保在 Info.plist 中正确配置了 Universal Links。

4. 参数获取方式

在 iOS 上,plus.runtime.arguments 可能无法直接获取到参数。你可以尝试通过以下方式获取参数:

  • 通过 plus.runtime.launcher 获取启动参数

    document.addEventListener('plusready', function() {
      var launcher = plus.runtime.launcher;
      if (launcher === 'scheme') {
        var args = plus.runtime.arguments;
        console.log('Arguments:', args);
      }
    });
  • 通过 plus.runtime.getProperty 获取启动参数

    plus.runtime.getProperty(plus.runtime.appid, function(info) {
      console.log('App Info:', info);
    });
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!