关于uniapp的IOS应用白屏产生和优化策略

关于uniapp的IOS应用白屏产生和优化策略,第1张

产生

任何手机设备上,当手机内存不足时,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  
    }  
优化策略(2)

在manifest.json文件进行配置

"app-plus" : {
	"optimization" : {
	     "subPackages" : true
	 },
	 "runmode" : "liberate", // 开启分包优化后,必须配置资源释放模式
	 "kernel" : {
	 // 使用WKWebview渲染内核
	     "ios" : "WKWebview",
	     // 重新渲染行为
	     "recovery" : "restart"
	 },
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/996971.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存