开发者学堂课程【mPaaS 小程序开发实战: 接入 mpaas 小程序并实现启动 IOS 版】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/301/detail/3507
接入 mpaas 小程序并实现启动 IOS 版
内容介绍:
一、如何在 ios 客户端快速集成小程序的能力
一、如何在 ios 客户端快速集成小程序的能力
主要结合 mpaas 官方文档中的小程序的接入 ios 的快速开始,来进行一个说明和介绍。
已经接入工程到 mPaaS 更多信息,请参见以下内容:
l 基于 mPaaS 框架接入
l 基于已有工程且使用 mPaaS 插件接入
l 基于已有工程且使用 CocoaPods 接入
首先第一步需要接入工程到 mPaaS,根据不同的场景提供了三种功能的接入方式,详情见上。这里主要是介绍第三种,基于已有工程且使用 CocoaPods 接入。
1、基于已有工程且使用 CocoaPods 接入
首先需要准备一个基于 CocoaPods 的原生工程,有了工程之后,查看基于已有工程且使用CocoaPods接入的一个文档。首先需要是安装一个CocoaPods的插件,拷贝下这个脚本1. sh <(curl -s http://mpaas-ios.oss-cn-hangzhou.aliyuncs.com/cocoapods/ installmPaaSCocoaPodsPlugin.Sh)。然后打开终端,直接运行这个脚本。在这运行的过程中,可能需要输入一下电脑的密码,并获取下权限。安装完成之后,可以执行一个 pod mpaas version –plugin
的命令,来检查一下的插件是否安装成功,如果显示版本号的话,就说明这个插件已经成功安装了。
那么安装这个插件完成之后,下一步需要在 mPaaS 控制台创建应用,并下载一个 config 的配置文件。使用在那个阿里云的账号,然后登录 mPaaS 的控制台。打开这个控制台之后。可以选择那个创建应用,然后输入里的业务名称,创建属于自己的应用,也可以使用之前创建好的 mPaaS Demo 应用。
点击这个应用,进入里面,在左侧栏里面选择初始化配置的代码配置,点击代码配置,到 IOS 版的 Bundle ID 输入 c
om.mpaas.demo
,然后点击下载配置。将这个config文件保存到本地,就获取到了这个config文件。
之后,只需要将这个config的配置文件拷贝到工程的根目录下面,与 Podfile 同级站好。之后先切换到这个当前的这个工程目录下面,然后执行一个 p
od mpaas init
的命令。这个命令会自动的修改工程的一个 Podfile 文件,这里面会加入配置,需要这里需要手动修改一下 mpass baseline 的机械版本号,这里设置为10.1.68。修改完成之后保存。
2、添加 sdk
接下来开始添加 sdk,采用第二种使用 cocoapods-mpaas 插件的方式添加。在 Podfile文件中,使用 mPaaS_pod "mPaaS_TinyApp,添加小程序组件依赖,然后保存。之后执行执行 pod install 或 pod update 就可以了。这个工程会从mPaaS的仓库里面去下载小程序组件所需要依赖的一些sdk,下载完成。
可以直接打开这个 TinyAppDemo.xcworkspace 文件,可以看到在工程上面添加一些相关的文件。点击运行按钮,能看到工程已经成功运行起来了。mPaaS 里面会显示一个 hello word 的页面,到这一步就说明就已经完成了第二步添加 sdk 的一个操作。
接下来就可以开始来使用 sdk,使用 sdk 主要分成三步:初始化配置、发布小程序和启动小程序。
l 初始化配置
进行第一个初始化配置。第一步是首先需要启动容器,为了使用Nebula容器,您需要在程序启动完成后调用SDK接口,对容器进行初始化。必须在DTFrameworknterface的(void)application:(UIApplication ")application beforeDidFinishLaunchingWithOptions:(NSDictionary ")launchOptions
中进行初始化。
初始化完成之后,还需要进行一些容器的定制化,如有需要,可以通过设置 MPNebulaAdapterlnterface 的属性值来定制容器配置。必须在 DTFrameworkInterface 的“(void)application:(UlApplication ‘)application afterDidFinishLaunchingWithoptions:(NSDictionary ")launchoptions
中设置,否则会被容器默认配置覆盖。重点主要是,将小程序的硬性开关进行关闭,将以下代码运用到DTFrameworkilnterface+TinyAppDemo.m
的内容中,并运行。
1. ·(void)application:(UlApplication *)application afterDidFinishLaunchingWithOptions:(NSDictionary *)launcheption
2.{
3.//定制容器
4.[MPNebulaAdapterInterface shareInstanceJ.nebulaVeiwControllerClass = [MPH5WebViewController class];
5.[MPNebulaAdapterInterface shareInstance].nebulaNeedVerify = NO;
6.[wANebulaAdapterInterface shareInstance].nebulaUserAgent = mPaaS/Portal";
7.}
硬性开关关闭成功。
发布小程序。启动完成后,全量请求所有离线包信息,检查服务端是否有更新包。为了不影响应用启动速度,建议在(void)application:(UIApplication 1*)application afterDidFinishLaunchingWithoptions:(NSDictionary l')launchoptions
之后调用。代码为
1.- (void)application:(UlIApplication ")application afterDidFinishLaunchingWithOptions:(NSDictionary *)launchopion
.
2.{
3.//定制容器
4.[MPNebulaAdapterInterface shareInstance].nebulaVeiwControllerClass = [MPH5WebViewController class];
5.[MPNebulaAdapterInterface sharelnstance]员ebulaNeedVerify = NO;
6.[MPNebulaAdapterInterface shareInstanceJ.nebulaUserAgent = @"mPaaS/Portal";
7.[MPNebulaAdapterInterface shareInstance].nebulaCommonResourceAppList = @[@"77777777 ];
8.//全量更新离线包
9.[[MPNebulaAdapterInterface shareInstance] requestAllNebulaApps:^(NSDictionary *'data, NSError *error){
10. NSLog(@"");
11.}};
12.}
初始化完成之后,效果如上:
配置小程序。主要是在 info.plist 中配置以下 App 权限:
l NSBluetoothAlwaysUsageDescription:蓝牙权限(iOs 13中的新增权限)。
l NScameraUsageDescription:相机权限。
l NSPhotoLibraryUsageDescription:相册权限。
l NSLocationWhenInUseUsageDescription:定位权限。
就完成了这个全面的配置。非框架托管配置不需要操作。
l 发布小程序
登录控制台,选择小程序发布。如果是第一次使用,请先在小程序>小程序发布>配置管理中配置虚拟域名。虚拟域名可以为任意域名,建议使用企业域名,如 test.com。然后配置完成了之后。
第二步创建自己的小程序:
1.点击左侧导航栏的小程序>小程序发布。
2.在打开的小程序包列表页,点击新建。
3.在新建小程序窗口,填写小程序的 ID 和小程序名称,点提交。其中,小程序 ID 为任意16位数字,例如 2018080616290001。
创建完小程序之后,可以点击左侧的这个添加按钮,进行发布,有些参数需要进一个配置和说明,例如:
版本:填写小程序包的版本号,例如1.0.0.0。
客户端范围:选择小程序 App 对应的 iOS 客户端最低版本和最高版本。在这个范围内的客户端 App 可以启动对应的小程序,否则无法启动。这里最低版本可以填写0.0.0,最高版本可以不填,代表客户端所有版本都可以启动这个小程序。
注意:这里的版本号指当前客户端App 的版本号,请参考工程 Info.plist 中的 Product Version 字段。
包类型: 功能包
图标:点击选择文件上传小程序包的图标。第一次创建小程序时必需上传图标。
文件:上传小程序包资源文件,文件格式为.zip。有 mPaaS 示例小程序的附带文件,可以直接上传。
主入口 URL:必填,小程序包的首页,例如 /index.html#page/tabBar/component/index
其他配置保持默认即可,然后点击提交。
上传完成之后,就可以进行发布小程序。
●发布小程序
创建发布
发布类型:正式
发布描述:小程序发布
点击确定,发布成功。
l 启动小程序
完成上述步骤之后,进入对应的页面时,调用框架提供的 startTinyAppWithld 接口方法加载小程序。
[MwPNebulaAdapterInterface startTinyAppWithld:appld params:nil];
若打开小程序时需要传递参数,可以通过 param 参数进行设置。其中 param 包含 page 和 query 两个字段:
page:用来指定打开特定页面的路径。
可以把小程序基本信息的 ID 作为第一个 ID,第二个参数是启动小程序常用的扩展参数,直接填入 nil。完成了启动小程序的配置。站完了之后,直接重新运行工程,看到这里多出了一个打开小程序的这个按钮。
点击这个按钮。就会打开一个 mpaas 官方示例的一个小程序,完成了启动小程序的步骤。
以上全部完成了如何在 ios 客户端快速集成小程序的能力的全部步骤。