本文旨在深入探讨华为鸿蒙HarmonyOS Next系统(截止目前API12)的技术细节,基于实际开发实践进行总结。
主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。
本文为原创内容,任何形式的转载必须注明出处及原作者。
HarmonyOS 系统提供了丰富的系统应用,例如相机、文件管理、联系人、设置、电话、日历等。开发者可以通过应用跳转功能,方便地调用这些系统应用,提升应用的功能性和用户体验。
使用系统 Picker 组件
系统 Picker 组件是一种便捷的方式,可以让用户选择系统资源,例如图片、文件、联系人等,而不需要申请额外的权限。以下是一些常用的系统 Picker 组件:
1. 相机
CameraPicker
:用于拍照和录制视频。BarcodeScannerPicker
:用于扫描二维码或条形码。CardRecognizerPicker
:用于识别各类证件信息。
示例代码:import { CameraPicker } from '@ohos.arkui.ability.camera'; export default class EntryAbility extends common.UIAbility { onWindowStageCreate(windowStage: common.WindowStage) { const cameraPicker = new CameraPicker(); cameraPicker.startCamera({ type: CameraPickerType.PICTURE, onResult: (data) => { // 处理拍照结果 } }); } }
2. 文件管理
DocumentViewPicker
:用于访问和保存公共目录中的文档类文件。AudioViewPicker
:用于访问和保存公共目录的图片或视频文件。
示例代码:import { DocumentViewPicker } from '@ohos.arkui.ability.filemanager'; export default class EntryAbility extends common.UIAbility { onWindowStageCreate(windowStage: common.WindowStage) { const documentPicker = new DocumentViewPicker(); documentPicker.startDocumentView({ type: DocumentViewPickerType.ALL, onResult: (data) => { // 处理文档选择结果 } }); } }
3. 联系人
ContactsPicker
:用于选择联系人。
示例代码:import { ContactsPicker } from '@ohos.arkui.ability.contacts'; export default class EntryAbility extends common.UIAbility { onWindowStageCreate(windowStage: common.WindowStage) { const contactsPicker = new ContactsPicker(); contactsPicker.startContacts({ type: ContactsPickerType.ALL, onResult: (data) => { // 处理联系人选择结果 } }); } }
使用特定接口
除了系统 Picker 组件,HarmonyOS 还提供了其他一些接口,可以用于跳转系统应用:
1. 设置SettingAbility
:用于打开设置应用。
示例代码:import { common } from '@ohos.app.ability.common'; export default class EntryAbility extends common.UIAbility { onWindowStageCreate(windowStage: common.WindowStage) { const context = this.getContext(this) as common.UIAbilityContext; const want: common.Want = { action: 'ohos.intent.action.SHOW_SETTINGS', uri: "appsetting" }; context.startAbility(want); } }
2. 电话
TelephonyKit
提供了makeCall
接口,可以用于拨打电话。
示例代码:import { Telephony } from '@ohos.arkui.ability.telephony'; export default class EntryAbility extends common.UIAbility { onWindowStageCreate(windowStage: common.WindowStage) { const telephony = Telephony.getTelephony(); telephony.makeCall("10086"); } }
3. 日历
CalendarAbility
:用于打开日历应用。
示例代码:import { common } from '@ohos.app.ability.common'; export default class EntryAbility extends common.UIAbility { onWindowStageCreate(windowStage: common.WindowStage) { const context = this.getContext(this) as common.UIAbilityContext; const want: common.Want = { action: 'ohos.intent.action.SHOW_CALENDAR', uri: "calendar" }; context.startAbility(want); } }
举(N)个栗子
示例 1:使用 CameraPicker 拍照
import { CameraPicker } from '@ohos.arkui.ability.camera'; export default class EntryAbility extends common.UIAbility { onWindowStageCreate(windowStage: common.WindowStage) { const cameraPicker = new CameraPicker(); cameraPicker.startCamera({ type: CameraPickerType.PICTURE, onResult: (data) => { // 处理拍照结果 } }); } }
示例 2:使用 DocumentViewPicker 选择文档
import { DocumentViewPicker } from '@ohos.arkui.ability.filemanager'; export default class EntryAbility extends common.UIAbility { onWindowStageCreate(windowStage: common.WindowStage) { const documentPicker = new DocumentViewPicker(); documentPicker.startDocumentView({ type: DocumentViewPickerType.ALL, onResult: (data) => { // 处理文档选择结果 } }); } }
示例 3:使用 ContactsPicker 选择联系人
import { ContactsPicker } from '@ohos.arkui.ability.contacts'; export default class EntryAbility extends common.UIAbility { onWindowStageCreate(windowStage: common.WindowStage) { const contactsPicker = new ContactsPicker(); contactsPicker.startContacts({ type: ContactsPickerType.ALL, onResult: (data) => { // 处理联系人选择结果 } }); } }
示例 4:拨打电话
import { Telephony } from '@ohos.arkui.ability.telephony'; export default class EntryAbility extends common.UIAbility { onWindowStageCreate(windowStage: common.WindowStage) { const telephony = Telephony.getTelephony(); telephony.makeCall("10086"); } }
示例 5:打开设置应用
import { common } from '@ohos.app.ability.common'; export default class EntryAbility extends common.UIAbility { onWindowStageCreate(windowStage: common.WindowStage) { const context = this.getContext(this) as common.UIAbilityContext; const want: common.Want = { action: 'ohos.intent.action.SHOW_SETTINGS', uri: "appsetting" }; context.startAbility(want); } }
总结:
拉起系统应用是应用间跳转的重要功能,它能够方便地调用系统应用,提升应用的功能性和用户体验,我们可以根据实际需求选择合适的系统应用类型。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。