首页 >移动开发平台 mPaaS >小程序 >小程序开发 >接入 Android >进阶指南 >Android 小程序接入真机预览与调试

Android 小程序接入真机预览与调试

接入真机预览和调试功能步骤如下。

说明

仅在 mPaaS 10.1.60 及以上版本中支持。

  1. H5 容器配置文件 (在示例工程中名为 custom_config.json)中加入 h5_remote_debug_host 的值,此值为调试通信的服务器地址。

    1. 打开您从 mPaaS 控制台 下载的名为 config.json小程序 IDE 配置文件,找到 debug_url 字段。配置文件示例如下:

      {
      "login_url":"https://mappcenter.cloud.alipay.com/ide/login",
      "uuid_url":"http://cn-hangzhou-mproxy.cloud.alipay.com/switch/uuid",
      "debug_url":"wss://cn-hangzhou-mproxy.cloud.alipay.com",
      "sign":"3decfd66c2924489204b4b0f38a9c228",
      "upload_url":"https://mappcenter.cloud.alipay.com/ide/mappcenter/mds"
      }
    2. 随后在工程的 custom_config.json 中添加 h5_remote_debug_hostkeyh5_remote_debug_hostvalue 为上方配置文件中的 debug_url 字段,并在末尾加上 /host/,示例如下:

      [
      {
      "key": "h5_remote_debug_host",
      "value": "wss://cn-hangzhou-mproxy.cloud.alipay.com/host/"
      }
      ]
  2. 设置虚拟域名。

    1. 在 mPaaS 控制台中,点击 小程序 > 小程序发布 > 配置管理,在 域名管理 中可获取您之前填写的虚拟域名。vhost

    2. 在工程中打开 MyApplication,在应用启动或启动小程序前调用 tinyHelper.setTinyAppVHost 方法设置小程序所使用的虚拟域名,代码示例如下:

      说明

      需将下方代码示例中的 demo.com 替换为您所设置的虚拟域名。

      MPTinyHelper tinyHelper = MPTinyHelper.getInstance();
      tinyHelper.setTinyAppVHost("demo.com");
  3. 设置白名单。使用真机预览和调试功能时,客户端需要配置用户唯一标识。即根据应用实际情况,在 userId 方法中返回 App 的唯一标识,例如用户名、手机号、邮箱等。在设置虚拟域名的代码下方,添加如下代码。后续在小程序 IDE 插件的 配置白名单 中填入的值,需与此处配置的 userId 保持一致。

    MPLogger.setUserId("your userId");
  4. 接入扫码组件并解析预览或调试的二维码,解析二维码并启动小程序的代码如下:

    • 如果您使用的是 10.1.68.6 及以上版本的基线,请使用如下代码进行解析。您可以在 mPaaS 插件 mPaaS > 组件管理 菜单下查看准确的基线版本号。

      //第一个参数为二维码的 uri,第二个参数为自定义启动参数。若无自定义启动参数则填 new Bundle()。
      MPTinyHelper.getInstance().launchIdeQRCode(uri, new Bundle());
    • 如果您使用的是 10.1.68.6 以下或 10.1.60 版本的基线,请使用如下代码进行解析。

      // uri 是二维码对应的内容
      String scheme = uri.getScheme();
      if ("mpaas".equals(scheme)) {
            Bundle params = new Bundle();
            String appId = uri.getQueryParameter("appId");
            for (String key : uri.getQueryParameterNames()) {
                if (!"appId".equalsIgnoreCase(key)) {
                   params.putString(key, uri.getQueryParameter(key));
               }
            }
            LauncherApplicationAgent.getInstance().getMicroApplicationContext()
                startApp(null, appId, params);
      }
阿里云首页 移动开发平台 mPaaS 相关技术圈