wgt热更新
主要就两个配置
1.manifest.json
基础配置里面配置应用版本名称和应用版本号,初始版本是1.0.0
注意
后面每更新一次都要加一个版本号,否则无法更新,比如1.0.2…
应用版本名称和应用版本号需要保持一致
2.App.vue
在该文件的onLaunch
生命周期内添加如下代码
// #ifdef APP-PLUS
let that = this;
plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
getUpdateUrl({type: 'A-B-C', version: widgetInfo.version}).then(res => {
uni.downloadFile({
url: res.wgtUrl,
success: (downloadResult) => {
if (downloadResult.statusCode === 200) {
plus.runtime.install(downloadResult.tempFilePath, {
force: false
}, function() {
console.log('install success...');
plus.runtime.restart();
}, function(e) {
console.error('install fail...' + JSON.stringify(e));
});
}
}
});
})
});
// #endif
其中getProperty
方法是获取本地资源版本号,getUpdateUrl
是请求接口,A-B-C
是当前项目名称,通过接口判断当前项目是否有需要跟新的版本;如果有则获取最新该项目wgt包的地址,然后下载下来,通过app里面install方法在app内安装,成功后调用plus内的restart方法重启当前wgt
调用APP方法
实现就是调用APP内的插件里的方法
// 在script的最上层定义一个module
const module = uni.requireNativePlugin('PluginName');
fun
就是APP内的方法
// 在需要调用的的方法里面使用
// #ifdef APP-PLUS
var ret = module.fun();
// #endif
后续有内容继续补充…