全部产品
云市场
云游戏

Android 小程序自定义启动加载页

更新时间:2020-03-02 09:23:42

当启动小程序时,如小程序未下载到设备,小程序容器会启动加载页(如下图)提示用户等待,待小程序安装到设备上,加载页关闭并跳转至小程序。

实现自定义加载页

对于 Android 小程序,mPaaS 支持开发者自定义加载页内容,您可按照以下步骤进行配置:

  1. 实现 MPTinyBaseIntermediateLoadingView 类,该类实现的 View 会被插入到加载页所在的 Activity 中,接入方只需处理页面展示即可。代码示例如下:

    1. package com.mpaas.demo.nebula;
    2. import android.content.Context;
    3. import android.util.AttributeSet;
    4. import android.view.LayoutInflater;
    5. import android.widget.TextView;
    6. import com.mpaas.nebula.adapter.api.MPTinyBaseIntermediateLoadingView;
    7. public class TinyStartupLoadingView extends MPTinyBaseIntermediateLoadingView {
    8. private TextView tvAppName;
    9. private TextView tvAppId;
    10. private TextView tvTips;
    11. public TinyStartupLoadingView(Context context) {
    12. super(context);
    13. init();
    14. }
    15. public TinyStartupLoadingView(Context context, AttributeSet attrs) {
    16. super(context, attrs);
    17. init();
    18. }
    19. public TinyStartupLoadingView(Context context, AttributeSet attrs, int defStyleAttr) {
    20. super(context, attrs, defStyleAttr);
    21. init();
    22. }
    23. private void init() {
    24. LayoutInflater.from(getContext()).inflate(R.layout.activity_loading, this, true);
    25. tvAppName = (TextView) findViewById(R.id.app_name);
    26. tvAppId = (TextView) findViewById(R.id.app_id);
    27. tvTips = (TextView) findViewById(R.id.tv_tips);
    28. }
    29. /**
    30. * 初始化时调用,会传入小程序的应用 ID。其他信息,如名称、应用图标、版本等,可能为空。
    31. */
    32. @Override
    33. public void initView(AppInfo info) {
    34. tvAppName.setText(info.appName);
    35. tvAppId.setText(info.appId);
    36. tvTips.setText("loading");
    37. }
    38. /**
    39. * 获取小程序失败时调用
    40. */
    41. @Override
    42. public void onError() {
    43. tvTips.setText("fail");
    44. }
    45. /**
    46. * 拉取到小程序应用信息时调用,可获取应用 ID、名称、图标和版本信息
    47. */
    48. @Override
    49. public void update(AppInfo info) {
    50. tvAppName.setText(info.appName);
    51. tvAppId.setText(info.appId);
    52. }
    53. }
  2. 在小程序启动前,例如应用初始化时,开启自定义配置,代码示例如下:

    1. MPTinyHelper.getInstance().setLoadingViewClass(TinyStartupLoadingView.class);
  3. 如果在自定义加载页中需要对其宿主的 Activity 操作,例如中断加载过程返回至上一页,可以通过基类方法 getLoadingActivity() 获取宿主 Activity。需注意进行判空处理。