更新时间:2020-12-30 11:38
H5 离线包的使用可以分为四个部分:发布离线包、预置离线包、启动离线包和更新离线包。在本教程中为了说明和演示 H5 离线包的功能,采取了从发布到预置,再到启动,最后到更新的流程,但是这一流程并非使用 H5 离线包的必要条件。在实际生产中,您可以自由地根据需要进行使用。
本节介绍了发布离线包的操作流程。
观看 发布离线包 视频教程,了解具体操作。
一个前端 App 的 zip包(如果您没有自己的前端离线包,您可以下载我们为您准备好的 示例离线包)。
本节介绍了预置离线包的操作流程。
观看 预置离线包 视频教程,了解具体操作。
您已经在 mPaaS 控制台发布了离线包。
将离线包预置到应用内。推荐在 App 启动的时候注册,在本教程中在 MyApplication
类中进行注册。至此,您已经完成 预置离线包。
public class MyApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
// 建议判断下是否主进程,只在主进程初始化
QuinoxlessFramework.setup(this, new IInitCallback() {
@Override
public void onPostInit() {
// 在这里开始使用mPaaS功能
registerCustomJsapi();
//调用loadOfflineNebula()以加载离线包。
loadOfflineNebula();
}
});
}
@Override
public void onCreate() {
super.onCreate();
QuinoxlessFramework.init();
}
private void loadOfflineNebula() {
new Thread(new Runnable() {
@Override
public void run() {
// 此方法为阻塞调用,请不要在主线程上调用内置离线包方法。如果内置多个amr包,要确保文件已存在,如不存在,会造成其他内置离线包失败。
// 此方法仅能调用一次,多次调用仅第一次调用有效。
MPNebula.loadOfflineNebula("h5_json.json", new MPNebulaOfflineInfo("80000000_1.0.0.0.amr", "80000000", "1.0.0.0"));
}
}).start();
}
}
本节介绍了启动离线包的操作流程。
观看 启动离线包 视频教程,了解具体操作。
您在客户端中已经预置了离线包。
start_app_btn
。
<Button
android:id="@+id/start_app_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="20dp"
android:background="#108EE9"
android:gravity="center"
android:text="启动一个离线包"
android:textColor="#ffffff" />
MainActivity
类定义点击按钮start_app_btn
后的行为,启动离线包。其中传入的参数 “80000000” 为离线包的 App ID。
findViewById(R.id.start_app_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MPNebula.startApp("80000000");
}
});
本节介绍了更新离线包的操作流程。
观看 更新离线包 视频教程,了解具体操作。
您的客户端应用中已经预置了离线包,并且在 mPaaS 控制台上已经创建了新的离线包版本,也上传了新版本的离线包。
update_app_btn
。
<Button
android:id="@+id/update_app_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="20dp"
android:background="#108EE9"
android:gravity="center"
android:text="更新离线包"
android:textColor="#ffffff" />
MainActivity
类定义点击按钮 update_app_btn
后的行为,启动离线包。其中传入的参数“80000000”为离线包的 App ID。
findViewById(R.id.update_app_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MPNebula.updateAllApp(new MpaasNebulaUpdateCallback() {
@Override
public void onResult(final boolean success, final boolean isLimit) {
// success 为是否成功
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, success ? "离线包更新成功" : "离线包更新失败", Toast.LENGTH_SHORT).show();
}
});
}
});
}
});
在文档使用中是否遇到以下问题
更多建议
匿名提交