开发

常见问题

宿主开发者问题反馈平台 : 宿主开发者可以在这个平台进行问题反馈。

1.在聚合支付过程中,我们需要注意哪些问题?

答:注意微信支付时,需要 App 回流做些特殊处理,请参考支付协议

2.宿主方如何实现一个扩展私有能力?

答:当前宿主方需要扩展私有能力,需要开发前端的 extension.js ,Native 端具体扩展流程,请参考扩展实现

3.宿主方在接入完成开源小程序 SDK 后,如何进行兼容性测试,保证线上质量?

答:当前需要宿主手动运行 CTS 小程序进行兼容性测试,具体 CTS 测试流程,请参考 CTS 测试

4.有哪些性能优化的方案,可供宿主方使用?

答:目前只提供了预下载小程序功能性能优化方案,具体调用调用方式,请参考 API 列表 - 预下载小程序。其他优化措施还在百度 App 中进行 AB 实验,等在百度 App 上实验固化后,随小程序SDK版本升级开放给宿主。

5.相同的小程序在百度 App 、开源 demo App 或其他宿主 App 上运行正常,在自己的 App 上偏偏有问题?

答:遇到这个问题,可能会是以下情况引起:

  • 保证开放的一些 Adapter 接口有没有实现,可通过 iOS 接入指南 - 8.CTS 测试进行功能验证。
  • 检查一下宿主工程有没有做过 HOOK 系统方法的操作,改变了系统方法运行方式,这样可能会导致小程序内部运行环境异常,杜绝 HOOK 系统方法。比如:宿主 hook 了 NSMutableDictionary 的“setObject:<(nonnull id)> forKey:<(nonnull id)>”方法,对 object 做了 nil 处理,导致“dic[key] = nil”这样语法失灵。
  • 百度系的宿主需要注意小程序依赖的 SMLibs 库中:Pyramid.framework、BBASchemeDispatcher.framework、BDP App earance.framework 等,这些库在小程序内部已经进行初始化,会在宿主上存在多初始化问题,Pyramid 和 BBASchemeDispatcher 宿主上可以不用,BDPAppearance 库如果除了小程序在使用外,还有其他业务再使用,参考配置 - 三方库初始化
  • 当前小程序在不同宿主上运行,小程序开发者对特定的宿主上做了特殊处理,其他宿主上就无法正常运行;使用了扩展端能力或还未对外开放的公共端能力(AI、AR 等),宿主上没有集成。比如:通过小程序 UA 进行业务判断处理或者在该小程序只能限定在百度 App 上运行。

6.应苹果审核要求,小程序 SDK 及相关依赖百度的基础库中 UIWebview 使用,整体下线时间?

答:小程序 SDK 及相关依赖百度的基础库对UIWebview使用,已在 SDK2.23.0 整体下线。不可单独替换库,需整体依赖。

7.对于升级SDK过程中,openBdboxWebview能力从私有迁移到公有能力,需要注意哪些问题?

答:openBdboxWebview 这个端能力从小程序SDK2.24.0版本由原来的私有变成公有,宿主方从2.24.0之前的版本升级上来,收集端能力描述表中会出现重复的端能力描述,需要将宿主工程中的这个端能力定义(代码注释)、实现删掉,实现对应BBASMUtilAdapterProtocol协议中的”+ (void)pageTransition:…”、”+ (BOOL)shouldCheckPageTransitionAuthorize:”接口;

8.升级后无法打开小程序,报2101错误或0030错误?

答:2.32 版本以后宿主需要在开源宿主平台上,按照 APP渠道包名 补充对应线上、线下 APP 包名,补充完成后下载并更新工程中的 union-cfg.json 文件,否则将会影响小程序的正常使用。具体可参考 宿主 app 包信息管理

9.工程编译不过,报如下错误

图片

答:2.36 版本以后工程适配 iOS15,需要升级 Xcode 版本到 13.2 以上