uni app中android打开本地vue的列表会发现,底部有条白边。
vue通过uni.getSystemInfoSync();
方法获取系统信息,首次取值对,再次取值就出错
uni app每次启动冷APP uni
通过uni.getSystemInfoSync();
方法获取系统信息的信息是正常的,再次获取屏幕信息异常。
解决方案:
- 由于uni app无法知道启动为冷启动还是其他启动方式
- 所以android原生通过UniModule的isAppStarted告诉uni app是冷启动还时其他启动方式
- uni app冷启动时:获取屏幕信息并保存;其他启动方式:通过本地存储获取屏幕信息
// 原生代码如下 start
// Activity代码
public static int started = 0;
public static int getStarted() {
return started;
}
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
started++;
}
// UniModule代码
/**
* 是否热、温启动 仅android有
*
* @return true 是 false 否
*/
@JSMethod(uiThread = false)
public boolean isAppStarted(JSONObject options) {
return (MyPandoraEntry.getStarted() > 1);
}
// 原生代码 end
// vue代码如下
// vue列表中适配
var isAppStarted = uniModule.isAppStarted();
if(isAppStarted){// 热、温启动 数据库 取值
this.commData = uni.getStorageSync('commData') ;
if(!this.commData){
this.commData = uni.getSystemInfoSync();
}
}else{// 冷启动 存数据库
this.commData = uni.getSystemInfoSync();
uni.setStorageSync('commData', this.commData);
}