全部产品
云市场

iOS 小程序真机预览与调试

更新时间:2020-05-29 19:30:23

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

说明:仅在 mPaaS 10.1.60 及以上版本中支持。
按照以下步骤接入预览和调试功能:

  1. 根据 IDE 的 二维码 获取二维码内容字符串(如通过扫码)。
  2. 调用小程序预览调试接口。
    • 传入二维码内容字符串:
      1. [MPNebulaAdapterInterface startDebugTinyAppWithUrl:qrCode];
    • 或带自定义参数接口:
      1. [MPNebulaAdapterInterface startDebugTinyAppWithUrl:qrCode params:nil];
      若打开小程序时需要传递参数,可以通过 param 参数进行设置。其中 param 包含page 和 query 两个字段:
      • page: 用来指定打开特定页面的路径。
      • query: 用来传入自定义的参数。多个键值对以 & 进行拼接。
        1. NSDictionary *param = @{@"page":@"pages/card/index", @"query":@"own=1&sign=1&code=2452473"};
        2. [MPNebulaAdapterInterface startTinyAppWithId:appId params:dic];

配置白名单

使用真机预览和调试功能时,客户端需要在 MPaaSInterface 的 category 中配置用户唯一标识,根据应用实际情况,在 userId 方法中返回 App 的唯一标识,例如用户名、手机号、邮箱等,这里配置的 userId 需要与小程序 IDE 生成的二维码下方的 userId 保持一致。

  1. #import <mPaas/MPaaSInterface.h>
  2. @implementation MPaaSInterface (MPTinyAppDemo_pod)
  3. - (NSString *)userId
  4. {
  5. return @"mPaaS";
  6. }
  7. @end

iOS 小程序保活

小程序保活指在 App 中打开小程序后,退出小程序但不退出 App 时,小程序会继续存活一段时间,再次打开小程序时,会回到上次退出时的状态,iOS 当前默认保活时间为 60s。

使用

小程序中有一个 场景 的概念,指用户进入小程序的路径,场景值则是用来描述该路径的数值。小程序能否实现保活则主要取决于再次打开小程序的场景同退出小程序时的场景是否一致,以及再打开时的时间间隔是否超出了保活时间。

例如:扫码和搜索是两个不同的场景,假设扫码打开的小程序场景值为 A,退出后若再次通过扫码打开小程序则保活生效;但这时如果通过搜索打开小程序,假设搜索场景值为 B,则会清除小程序之前的缓存,此次保活不生效。

  • 除了在 mPaaS 控制台配置小程序包时选择开启保活外,调用打开小程序函数时,还需要传入 chInfo,即 场景值,保活才会生效,代码示例如下:
    1. [MPNebulaAdapterInterface startTinyAppWithId:item[0] params:@{@"chInfo" : @"MPPortal_home"}]
  • 预置包注意检查下面的配置是否正确:
    configuration

注意事项

  • 当账户发生变化时,需要告知小程序容器释放之前账户的保活小程序,需要调用下面的代码:
    1. NSDictionary *userInfo = @{@"login_notifaction_changeAccount" : @(YES)
    2. };
    3. [[NSNotificationCenter defaultCenter] postNotificationName:@"APLoginControllerDidFinishNotification" object:nil userInfo:userInfo];
    说明:如果不通知容器,可能会出现再次打开小程序时,由于保活的存在,会回到之前账户退出小程序时的状态。
  • 接入账户通后,在跳转支付宝授权登录时,由于账户发生变化会自动发出上面的通知,清除当前缓存的小程序,从而导致本次保活失效。
  • 谨慎使用保活能力,一旦小程序出现问题,由于保活的存在,会造成可能需要重启 App 才能正常使用小程序。