当前位置:   article > 正文

关于uniapp的IOS应用白屏产生和优化策略_uniapp ios 内存崩溃

uniapp ios 内存崩溃

产生

任何手机设备上,当手机内存不足时,os都会回收资源。一般是先回收后台打开的资源。如果当前应用占用的资源过高,当前应用也有可能崩溃。引用

优化策略(1)

使用ES6的async、await、Promise执行异步转同步。该方法改自引用

reloadCurrentPage: async (self, isTab = true) => {  
        // #ifdef APP-PLUS
		let { route, options } = self.$scope
        var url = '/' + route
        if (options && options.data) {
            url += '?data=' + options.data
        }
		
        const query = uni.createSelectorQuery().in(self);
        let number = 30 // 最大获取节点次数
        let data = await new Promise(async (resolve) => {
        	clearInterval(interval)
        	interval = setInterval(async () => {
        		let result = await new Promise(r => {
        			query.select('.x-container').fields({ size: true }, d => {
        				r(d)
        			}).exec()
        		})
        		if (result || number <= 0) {
        			clearInterval(interval)
        			resolve(result)
        		}
        		number--
        	}, 100) // 每次获取节点频率
        })
         // 当无法获取节点时执行重载页面
         if (!data) {
            if (isTab) {
                uni.reLaunch({ url })
            } else {
                uni.redirectTo({ url })
            }
        }
        // #endif  
    }  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

优化策略(2)

在manifest.json文件进行配置

"app-plus" : {
	"optimization" : {
	     "subPackages" : true
	 },
	 "runmode" : "liberate", // 开启分包优化后,必须配置资源释放模式
	 "kernel" : {
	 // 使用WKWebview渲染内核
	     "ios" : "WKWebview",
	     // 重新渲染行为
	     "recovery" : "restart"
	 },
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/258944?site
推荐阅读
相关标签
  

闽ICP备14008679号