回复
     HarmonyOS的连接艺术之四:便捷访问系统功能 原创
SameX
 发布于 2024-10-20 11:51
 浏览
 0收藏
本文旨在深入探讨华为鸿蒙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);
  }
}
总结:
拉起系统应用是应用间跳转的重要功能,它能够方便地调用系统应用,提升应用的功能性和用户体验,我们可以根据实际需求选择合适的系统应用类型。
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
 分类 
 标签 
   
        赞
        
 
        收藏 
      
 回复
  相关推荐
 



















