当启动小程序时,如小程序未下载到设备,小程序容器会启动加载页(如下图)提示用户等待,待小程序安装到设备上,加载页关闭并跳转至小程序。
实现自定义加载页
对于 Android 小程序,mPaaS 支持开发者自定义加载页内容,您可按照以下步骤进行配置:
实现
MPTinyBaseIntermediateLoadingView
类,该类实现的 View 会被插入到加载页所在的 Activity 中,接入方只需处理页面展示即可。代码示例如下:package com.mpaas.demo.nebula;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.TextView;
import com.mpaas.nebula.adapter.api.MPTinyBaseIntermediateLoadingView;
public class TinyStartupLoadingView extends MPTinyBaseIntermediateLoadingView {
private TextView tvAppName;
private TextView tvAppId;
private TextView tvTips;
public TinyStartupLoadingView(Context context) {
super(context);
init();
}
public TinyStartupLoadingView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public TinyStartupLoadingView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
LayoutInflater.from(getContext()).inflate(R.layout.activity_loading, this, true);
tvAppName = (TextView) findViewById(R.id.app_name);
tvAppId = (TextView) findViewById(R.id.app_id);
tvTips = (TextView) findViewById(R.id.tv_tips);
}
/**
* 初始化时调用,会传入小程序的应用 ID。其他信息,如名称、应用图标、版本等,可能为空。
*/
@Override
public void initView(AppInfo info) {
tvAppName.setText(info.appName);
tvAppId.setText(info.appId);
tvTips.setText("loading");
}
/**
* 获取小程序失败时调用
*/
@Override
public void onError() {
tvTips.setText("fail");
}
/**
* 拉取到小程序应用信息时调用,可获取应用 ID、名称、图标和版本信息
*/
@Override
public void update(AppInfo info) {
tvAppName.setText(info.appName);
tvAppId.setText(info.appId);
}
}
在小程序启动前,例如应用初始化时,开启自定义配置,代码示例如下:
MPTinyHelper.getInstance().setLoadingViewClass(TinyStartupLoadingView.class);
如果在自定义加载页中需要对其宿主的 Activity 进行操作,例如中断加载过程返回至上一页,可以通过基类方法
getLoadingActivity()
获取宿主 Activity。需注意进行判空处理。
文档内容是否对您有帮助?