fix: 解决授权依次授权的问题
This commit is contained in:
		
							parent
							
								
									b4cd064c67
								
							
						
					
					
						commit
						3f6137f4f2
					
				| @ -11,6 +11,7 @@ import { InitTable } from '../utils/table/Operation'; | |||||||
| import FileUtils from '../utils/FileUtils'; | import FileUtils from '../utils/FileUtils'; | ||||||
| import { EntryTag } from '../config'; | import { EntryTag } from '../config'; | ||||||
| import { dConsole } from '../utils/LogWorker'; | import { dConsole } from '../utils/LogWorker'; | ||||||
|  | import { UseAuth } from '../utils/Common'; | ||||||
| 
 | 
 | ||||||
| export default class EntryAbility extends UIAbility { | export default class EntryAbility extends UIAbility { | ||||||
|   async onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { |   async onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { | ||||||
| @ -24,7 +25,7 @@ export default class EntryAbility extends UIAbility { | |||||||
|       if (data !== '' && data !== undefined) { |       if (data !== '' && data !== undefined) { | ||||||
|         const result: EnvironmentConfigurationType = JSON.parse(data) |         const result: EnvironmentConfigurationType = JSON.parse(data) | ||||||
|         AppStorage.setOrCreate<EnvironmentConfigurationType>("EnvironmentConfiguration", result) |         AppStorage.setOrCreate<EnvironmentConfigurationType>("EnvironmentConfiguration", result) | ||||||
|         if(result.isOpenLog){ |         if (result.isOpenLog) { | ||||||
|           dConsole.init(result.isOpenLog) |           dConsole.init(result.isOpenLog) | ||||||
|         } |         } | ||||||
|         const host = `http://${result.centerIp}:${result.centerPort}` |         const host = `http://${result.centerIp}:${result.centerPort}` | ||||||
| @ -46,6 +47,7 @@ export default class EntryAbility extends UIAbility { | |||||||
| 
 | 
 | ||||||
|   async onWindowStageCreate(windowStage: window.WindowStage) { |   async onWindowStageCreate(windowStage: window.WindowStage) { | ||||||
|     console.log(EntryTag, "onWindowStageCreate", "窗口创建完成") |     console.log(EntryTag, "onWindowStageCreate", "窗口创建完成") | ||||||
|  |     await UseAuth(this.context) | ||||||
|     const windowClass = await windowStage.getMainWindow(); |     const windowClass = await windowStage.getMainWindow(); | ||||||
|     let rect = windowClass.getWindowProperties().windowRect |     let rect = windowClass.getWindowProperties().windowRect | ||||||
|     let width = rect.width |     let width = rect.width | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ import { HomeTag, JudgeConfig } from '../config'; | |||||||
| import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements'; | import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements'; | ||||||
| import { BaseInfoType } from '../model/Common'; | import { BaseInfoType } from '../model/Common'; | ||||||
| import { CarInfoType, InitializeTheCentralTableType, MASYSSETTableType, TimeSynchronizationRspBody } from '../model'; | import { CarInfoType, InitializeTheCentralTableType, MASYSSETTableType, TimeSynchronizationRspBody } from '../model'; | ||||||
| import { CreateAlbum, GetCarInfo, GetDeviceInfo, SetCurrentTime, UseAuth } from './Index/utils'; | import { CreateAlbum, GetCarInfo, GetDeviceInfo, SetCurrentTime } from './Index/utils'; | ||||||
| import { GetSyncData, InitializeTheCentralTable } from '../utils/table/Operation'; | import { GetSyncData, InitializeTheCentralTable } from '../utils/table/Operation'; | ||||||
| import { BusinessError } from '@ohos.base'; | import { BusinessError } from '@ohos.base'; | ||||||
| import { delPic } from '../utils/Video'; | import { delPic } from '../utils/Video'; | ||||||
| @ -60,7 +60,7 @@ struct Index { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async aboutToAppear() { |   async aboutToAppear() { | ||||||
|     await UseAuth(this.context) |     dConsole.log("权限首页 aboutToAppear") | ||||||
|     this.ratio = AppStorage.get<BaseInfoType>('baseInfo')?.ratio || 1.4 |     this.ratio = AppStorage.get<BaseInfoType>('baseInfo')?.ratio || 1.4 | ||||||
|     this.angle = 0 |     this.angle = 0 | ||||||
|     AppStorage.set('lsh', '1111111111111') |     AppStorage.set('lsh', '1111111111111') | ||||||
| @ -76,8 +76,7 @@ struct Index { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   async onPageShow(): Promise<void> { |   async onPageShow(): Promise<void> { | ||||||
|     dConsole.log("首页 onPageShow2") |     dConsole.log("权限首页 onPageShow2") | ||||||
|     await UseAuth(this.context) |  | ||||||
|     if (!this.isPlay) { |     if (!this.isPlay) { | ||||||
|       this.avPlayer.playAudio(['welcome.wav']) |       this.avPlayer.playAudio(['welcome.wav']) | ||||||
|       this.isPlay = true |       this.isPlay = true | ||||||
|  | |||||||
| @ -14,8 +14,6 @@ import { | |||||||
| } from '../../model'; | } from '../../model'; | ||||||
| import dayTs from '../../utils/Date'; | import dayTs from '../../utils/Date'; | ||||||
| import { obtainCarExamInfo, timeSynchronization } from '../../api'; | import { obtainCarExamInfo, timeSynchronization } from '../../api'; | ||||||
| import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl'; |  | ||||||
| import { BusinessError } from '@ohos.base'; |  | ||||||
| import systemTime from '@ohos.systemTime'; | import systemTime from '@ohos.systemTime'; | ||||||
| import { VideoConfigData } from '../../mock'; | import { VideoConfigData } from '../../mock'; | ||||||
| import FileUtils from '../../utils/FileUtils'; | import FileUtils from '../../utils/FileUtils'; | ||||||
| @ -61,37 +59,6 @@ export async function GetCarInfo(): Promise<CarInfoType> { | |||||||
|   return {} |   return {} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // 获取授权 |  | ||||||
| export async function UseAuth(context: common.UIAbilityContext): Promise<boolean> { |  | ||||||
|   return new Promise((resolve, reject) => { |  | ||||||
|     const permissions: Array<Permissions> = |  | ||||||
|       [ |  | ||||||
|         "ohos.permission.SET_TIME", |  | ||||||
|         "ohos.permission.READ_IMAGEVIDEO", |  | ||||||
|         "ohos.permission.DISTRIBUTED_DATASYNC", |  | ||||||
|         "ohos.permission.CONNECTIVITY_INTERNAL", |  | ||||||
|         "ohos.permission.CAMERA", |  | ||||||
|         "ohos.permission.READ_MEDIA", |  | ||||||
|         "ohos.permission.WRITE_MEDIA", |  | ||||||
|         "ohos.permission.FILE_ACCESS_MANAGER" |  | ||||||
|       ]; |  | ||||||
|     abilityAccessCtrl.createAtManager().requestPermissionsFromUser(context, permissions).then(res => { |  | ||||||
|       let grantStatus: Array<number> = res.authResults; |  | ||||||
|       let length: number = grantStatus.length; |  | ||||||
|       resolve(true) |  | ||||||
|       for (let i = 0; i < length; i++) { |  | ||||||
|         if (grantStatus[i] !== 0) { |  | ||||||
|           reject(false) |  | ||||||
|           return; |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|     }).catch((err: BusinessError) => { |  | ||||||
|       dConsole.error("获取权限失败", JSON.stringify(err)) |  | ||||||
|       reject(false) |  | ||||||
|     }) |  | ||||||
|   }) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| //获取时间同步 | //获取时间同步 | ||||||
| export async function SetCurrentTime(): Promise<void> { | export async function SetCurrentTime(): Promise<void> { | ||||||
|   let deviceNo: string = AppStorage.get<string>('deviceNo')!; |   let deviceNo: string = AppStorage.get<string>('deviceNo')!; | ||||||
|  | |||||||
| @ -4,6 +4,8 @@ import { BusinessError } from '@ohos.base'; | |||||||
| import { CommonFileTag } from '../config'; | import { CommonFileTag } from '../config'; | ||||||
| import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl'; | import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl'; | ||||||
| import Prompt from '@system.prompt'; | import Prompt from '@system.prompt'; | ||||||
|  | import { dConsole } from './LogWorker'; | ||||||
|  | import common from '@ohos.app.ability.common'; | ||||||
| 
 | 
 | ||||||
| enum timeType { | enum timeType { | ||||||
|   fulltime = 1 |   fulltime = 1 | ||||||
| @ -253,4 +255,43 @@ export function ApplyForAuthorization(context: Context, permissionList: Array<Pe | |||||||
|       }) |       }) | ||||||
|     } |     } | ||||||
|   }) |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* | ||||||
|  |   * 使用权限 | ||||||
|  |   * @param context 上下文 | ||||||
|  |   * @return 返回一个 Promise,解析为 true 如果授权成功,否则为 false | ||||||
|  |  */ | ||||||
|  | export async function UseAuth(context: common.UIAbilityContext): Promise<boolean> { | ||||||
|  |   dConsole.log("权限授权开始1") | ||||||
|  |   return new Promise((resolve, reject) => { | ||||||
|  |     const permissions: Array<Permissions> = | ||||||
|  |       [ | ||||||
|  |         "ohos.permission.SET_TIME", | ||||||
|  |         "ohos.permission.READ_IMAGEVIDEO", | ||||||
|  |         "ohos.permission.DISTRIBUTED_DATASYNC", | ||||||
|  |         "ohos.permission.CONNECTIVITY_INTERNAL", | ||||||
|  |         "ohos.permission.CAMERA", | ||||||
|  |         "ohos.permission.READ_MEDIA", | ||||||
|  |         "ohos.permission.WRITE_MEDIA", | ||||||
|  |         "ohos.permission.FILE_ACCESS_MANAGER" | ||||||
|  |       ]; | ||||||
|  |     dConsole.log("权限授权开始2") | ||||||
|  |     abilityAccessCtrl.createAtManager().requestPermissionsFromUser(context, permissions).then(res => { | ||||||
|  |       let grantStatus: Array<number> = res.authResults; | ||||||
|  |       let length: number = grantStatus.length; | ||||||
|  |       dConsole.log("权限", length) | ||||||
|  |       dConsole.log("权限状态", JSON.stringify(grantStatus)) | ||||||
|  |       resolve(true) | ||||||
|  |       for (let i = 0; i < length; i++) { | ||||||
|  |         if (grantStatus[i] !== 0) { | ||||||
|  |           reject(false) | ||||||
|  |           return; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }).catch((err: BusinessError) => { | ||||||
|  |       dConsole.error("获取权限失败", JSON.stringify(err)) | ||||||
|  |       reject(false) | ||||||
|  |     }) | ||||||
|  |   }) | ||||||
| } | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user