开发者学堂课程【mPaaS 小程序开发实战 - 教你如何独立运行小程序 :Android 端03:小程序自定义启动加载页】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/741/detail/13129
Android 端03:小程序自定义启动加载页
小程序启动加载页,小程序是将远端的小程序包下载到本地,在下载过程中,会有一个 loading 的交互动画,目前官方提供了默认的动画,但是它是支持由开发者自定义的。
1、实现自定义加载页
对于 Android 小程序,mPaaS 支持开发者自定义加载页内容,可按照以下步骤进行配置:
实现 MPTinyBaseIntermediateLoadingView 类,该类实现的 View 会被插入到加载页所在的 Activity 中,接入方只需处理页面展示即可。
从官方 Demo 中拷贝 MPTinyBaseIntermediateLoadingView 类,准备一个空的小程序 Demo,
可以看到是继承 MPTinyBaseIntermediateLoadingView 类,其中有两个回调可以自己处理,一个是 update,从远端拉到小程序包的时候,可以对页面进行一些设置,当然也可以不设置,这里把 textview 设置了小程序的名字;
第二是 onError 的时候,要对页面进行设置,缺少一个 layout 信息,把 layout 拷贝过来,可以看到 layout 里其实就是一个 AUTitleBar,一个 View 里面会有 TextView 和 ProgressBar,
MPTinyBaseIntermediateLoadingView 类就生成好了。
2.在小程序启动前,例如应用初始化时,开启自定义配置,代码示例如下:
MPTinyHelper.getInstance().setLoadingViewClass(TinyStartupLoadingView.class);
需要将 MPTinyBaseIntermediateLoadingView 类设置给小程序,在 onPostInit 中设置,现在已经设置了自定义页面了,添加一下参数 Bundle,这样让 APP 每次都远端拉包,方便查看我们设置的内容。例如:
Bundle bundle = new Bundle();
//注意∶该参数会强制请求远端小程序最新版本,会有一个等待过程,这个等待过程就是自定义启动页
Bundle.putString( "nbupdate", "synctry") ;
加上这些参数,每次都会从远端拉包,bundle 放到启动参数后,进行编译,当点击启动一个小程序时,就会有自定义的页面,这样就加载小程序了。这就是自定义的小程序加载页。
3.如果在自定义加载页中需要对其宿主的 Activity 操作
例如中断加载过程返回至上一页,可以通过基类方法 getLoadingActivity() 获取宿主 Activity。需注意进行判空处理。