123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- export type SafeArea = {
- top : number,
- right : number,
- bottom : number,
- left : number,
- width : number,
- height : number,
- }
- export const AGREE_PRIVACY = 'UNI-PRIVACY-AGREE'
- type State = {
- lifeCycleNum : number,
- // 状态栏高度
- statusBarHeight : number,
- safeArea : SafeArea
- // 设备像素比
- devicePixelRatio : number
- // 事件判断回调
- eventCallbackNum: number
- // 是否匹配左侧窗口
- noMatchLeftWindow:boolean
- // 当前激活的tab页
- active: string
- leftWinActive:string
- // 是否同意隐私政策
- agreeToPrivacy: boolean | null
- // 是否同意截屏
- allowCapture: boolean,
- // 是否暗黑主题(适配web端)
- isDarkMode: boolean
- // 是否无网环境
- netless: boolean
- }
- const getAgreePrivacy = () => {
- const data = uni.getStorageSync(AGREE_PRIVACY)
- if (typeof data === 'boolean') {
- return data
- }
- if (data == null) {
- return null
- }
- return null
- }
- export const state = reactive({
- lifeCycleNum: 0,
- statusBarHeight: 0,
- devicePixelRatio: 1,
- eventCallbackNum: 0,
- noMatchLeftWindow: true,
- active: 'componentPage',
- leftWinActive: '/pages/component/view/view',
- safeArea: {
- top: 0,
- right: 0,
- bottom: 0,
- left: 0,
- width: 0,
- height: 0,
- },
- agreeToPrivacy: getAgreePrivacy(),
- allowCapture: true,
- isDarkMode:false,
- netless: false
- } as State)
- export const setLifeCycleNum = (num : number) => {
- state.lifeCycleNum = num
- }
- export const setEventCallbackNum = (num : number) => {
- state.eventCallbackNum = num
- }
- export const setStatusBarHeight = (height : number) => {
- state.statusBarHeight = height
- }
- export const setSafeArea = (value : SafeArea) => {
- state.safeArea = value
- }
- export const setDevicePixelRatio = (devicePixelRatio : number) => {
- state.devicePixelRatio = devicePixelRatio
- }
- export const setMatchLeftWindow = (matchLeftWindow:boolean) => {
- state.noMatchLeftWindow = !matchLeftWindow
- }
- export const setActive = (tabPage:string) => {
- state.active = tabPage
- }
- export const setLeftWinActive = (leftWinActive:string) => {
- state.leftWinActive = leftWinActive
- }
- export const setAgreeToPrivacy = (agree: boolean) => {
- state.agreeToPrivacy = agree
- uni.setStorageSync(AGREE_PRIVACY, agree);
- }
- export const setAllowCapture = (allow: boolean) => {
- state.allowCapture = allow
- }
- // 检查系统主题
- export const checkSystemTheme = () => {
- // #ifdef WEB || MP
- const info = uni.getAppBaseInfo();
- state.isDarkMode = info.hostTheme === 'dark';
- uni.onHostThemeChange((result) => {
- state.isDarkMode = result.hostTheme === 'dark';
- });
- // #endif
- // #ifdef APP
- uni.getSystemInfo({
- success: (res : GetSystemInfoResult) => {
- const appTheme = res.appTheme == "auto" ? res.osTheme! : res.appTheme!
- state.isDarkMode = appTheme.trim() == 'dark';
- }
- })
- uni.onAppThemeChange((res : AppThemeChangeResult) => {
- state.isDarkMode = res.appTheme.trim() == 'dark';
- })
- // #endif
- }
- export const setNetless = (netless: boolean) => {
- state.netless = netless
- }
|