1、manifest.json里已配置app-plus节点下的darkmode为true
2、onLaunch里监听theme:
uni.onThemeChange((res)=>{
const {osTheme , theme} = uni.getSystemInfoSync()
uni.showModal({
content:`onThemeChange res.theme=${res.theme} ; systemInfo.osTheme=${osTheme} ; systemInfo.theme=${theme}`
})
})
3、index里设置暗黑模式为跟随系统:
plus.nativeUI.setUIStyle('auto')
4、运行含有上述程序的APP后,返回OS桌面。
5、在操作系统的「设置-显示」里,设置深色模式为自动启用。
6、在保持深色模式自动启用的同时,点击“立即启用” 或者 调整系统时间使之临近预设的启用时间。
7、待确认OS已切换到深色模式后,返回APP,观察showModal弹出的内容,查看onThemeChange的回调参数里的theme 和 此时通过getSystemInfoSync获得的osTheme、theme是否与实际情况一致。
1 个回复
DCloud_heavensoft
os的主题触发change的时候,你的应用处于开启状态吗?
如果此时你的应用并未开启,那肯定接受不到通知,等你再启动就晚了。
change事件是一个辅助,启动的时候还得自己判断下当前的主题