简介
uni小程序SDK是为原生App打造的可运行基于uni-app开发的小程序前端项目的框架,帮助原生App快速获取小程序的能力,实现高效集成。
基本概念
uni-app
uni-app是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到H5、各种小程序(如微信/支付宝/百度等)以及Android和iOS App。了解更多信息请访问uni-app官网。
uni小程序SDK
uni小程序SDK提供让原生应用变身宿主的能力,集成后可以以小程序的形式运行和管理uni-app框架开发的小程序前端项目,实现一套代码多端运行。该SDK支持Android和iOS平台,其中uni-app x项目暂时仅Android支持,需下载相应的插件。
名词解释
- 宿主:指集成uni小程序SDK的原生App或uni-app x应用。
- 小程序:运行在宿主中的前端代码编写的小程序项目,使用uni-app框架开发。
- wgt:小程序应用资源包,即uni-app项目导出的小程序应用资源包。
- HBuilderX:开发uni-app的IDE工具。
注意
- uni小程序SDK仅支持使用uni-app开发的小程序,不支持纯wxml微信小程序运行,但uni-app支持使用wxml格式的小程序组件。
- uni小程序SDK仅支持uni-app的v3编译器,使用老版的开发者需首先保障应用可以运行在v3编译模式下。
特色
uni-app在App端采用双渲染引擎,支持webview渲染和改造版的weex进行原生渲染,其中webview渲染在Android上同时支持系统webview和x5渲染。
- 性能:uni小程序SDK的性能与uni-app的App端v3编译器相同,在启动速度、页面加载速度、逻辑层与视图层通信优化等方面表现优异,超过市面其他小程序引擎。
- 功能:uni小程序SDK的功能与uni-app的App端功能相同,所有原生能力均可调用,提供比小程序更丰富的API,支持完整App的开发,没有包体积限制。
- 插件生态:uni-app插件市场提供大量丰富的插件,扩展功能便捷。
应用场景
- 宿主App构建自己的应用生态,可以面向广泛开发者或定向部分开发者,灵活扩展业务。
- 原生App利用小程序模式对模块解耦,让不同模块的开发团队各自独立发版,实现灵活更新和维护。
- 原生App中部分功能使用uni-app实现,降低开发成本、提升发布效率。对于复杂功能模块,启动可能较慢,更推荐使用uni-app x原生SDK。
集成流程
原生App
- 宿主开发者下载uni小程序SDK,根据文档集成到宿主App中。
- 小程序开发者使用HBuilderX创建uni-app项目并开发功能,开发阶段可直接在HBuilderX内置基座进行测试,开发完毕后导出wgt包。
- 宿主开发者将wgt集成到宿主App中,可离线集成直接打包,也可以在线下载wgt资源。
- 通过uni小程序SDK的API将wgt资源部署到运行路径,然后即可跳转到该资源对应的小程序应用中。
- uni小程序支持wgt升级,可以在小程序中直接调用API在线更新wgt资源,实现热更新,具体可参考相关文档。
uni-app x应用
uni-app x应用可以通过uni_modules插件的形式引入uni小程序SDK,简化集成过程。
注意
- uni小程序SDK仅支持在原生App或uni-app x应用中集成使用,不支持HBuilderX打包生成的uni-app应用中集成。如需在uni-app项目中使用,请参考相关文档。
- uni小程序SDK支持同时运行多个小程序实例,但Android平台最多打开三个实例。
- uni小程序SDK无法使用插件市场中付费的原生插件,需注意功能限制。
案例
以下是一些集成uni小程序SDK的应用案例,包括CSDN App、顺丰速运、驿收发、我i科大、郑州大学移动校园、多彩洛职、大参林百科、网易藏宝阁、咪咕视频爱看版、剧豆星光、国家医保服务平台、乐健体育、海康威视、伴玩等,覆盖新闻、物流、教育、医疗等多个领域。
FAQ
Q:uni小程序SDK与App离线SDK的差别是什么?
A:两者解决不同的需求场景。uni小程序SDK适用于已有原生App,扩展小程序能力或替换部分功能模块,仅支持uni-app并使用v3编译器;App离线SDK适用于没有原生App,用DCloud工具开发App并打包发布为原生App,支持5+ App和uni-app,但自从uni小程序SDK推出后,不推荐集成到已有原生App中。
Q:想了解uni小程序SDK都有哪些js api,和微信小程序相比如何?
A:uni小程序SDK的js api比微信小程序更多,功能更接近于正常App,没有包体积限制,并提供更丰富的API支持完整App开发。详细文档和演示demo可参考uni-app官网。
Q:集成uni小程序SDK到Android项目中,APK的体积会增加多少?
A:如果只集成基础模块,排除视频、地图、分享等第三方功能,占用APK体积大小如下:对于armeabi-v7a约7MB左右;对于'armeabi-v7a'、'x86'、'arm64-v8a'约16MB左右。
Q:支持uni小程序的基座与标准的HX基座权限方面有什么变化?
A:两者权限基本一致,uni小程序的基座会增加用于支持创建小程序桌面快捷方式的权限,如com.android.launcher.permission.INSTALL_SHORTCUT等,具体权限列表可参考相关文档。