鸿蒙--------如何拉起常见的基础应用


前言

在日常开发中,我们会经常遇到在页面中拉起三方应用的场景,引导用户进行相关操作,像设置权限、唤起相机、跳转短信、跳转应用市场等,那么本文将为大家提供几个常见的拉起应用的方式。


一、核心代码解释

1. 在本应用内跳转应用市场的应用详情页进行应用更新

Button("拉起应用市场")
  .onClick(()=>{
	 let context = getContext(this) as common.UIAbilityContext;
	 let want:Want = {
	   uri: `store://appgallery.huawei.com/app/detail`//?id=${this.appId}
	   };
	   context.startAbility(want)
	     .then(() => {
	        // ...
	  })
  })

2. 通过跳转浏览器进入某个链接可通过传入uri

Button("拉起浏览器")
  .onClick(()=>{
	  let context = getContext(this) as common.UIAbilityContext;
	  let want: Want = {
	    action: "ohos.want.action.viewData",
	    bundleName: 'com.huawei.hmos.browser',
	    abilityName: 'MainAbility',
	    uri: "https://www.baidu.com/",
	   };
	   context.startAbility(want)
 })

3. 跳转系统通知设置页

Button("系统通知设置页")
  .onClick(()=>{
	 let context = getContext(this) as common.UIAbilityContext;
	 let want: Want = {
	   bundleName: 'com.huawei.hmos.settings',
	   abilityName: 'com.huawei.hmos.settings.MainAbility',
	   uri: "systemui_notification_settings",//消息通知传uri:systemui_notification_settings, 蓝牙传uri:bluetooth_entry, Wi-Fi传uri:wifi_entry,定位权限传uri:location_manager_settings
	    parameters: {
	      pushParams: {
	      bundleName:""    // 应用包名
	    	} 
	   	  }
		};
	context.startAbility(want)
})

4. 跳转设置-应用详情

Button("to应用信息")
  .onClick(()=> {
	 let context = getContext(this) as common.UIAbilityContext;
	 context.startAbility({
	   bundleName: 'com.huawei.hmos.settings',
       abilityName: 'com.huawei.hmos.settings.MainAbility',// com.huawei.hmos.settings.AppInfoAbility
	   uri: 'application_info_entry', //application_settings   application_info_entry
	   parameters: {
	     pushParams: {
	       bundleName:""
	      } // 应用包名
	   }
   });
 })

5. 拉起图库

Button("拉起图库")
 .onClick(() => {
    try {
      let PhotoSelectOptions = new picker.PhotoSelectOptions();
      PhotoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
      PhotoSelectOptions.maxSelectNumber = 5;
      let photoPicker = new picker.PhotoViewPicker();
      photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult) => {
        console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' +
        JSON.stringify(PhotoSelectResult));
      }).catch((err: Error) => {
        console.error('PhotoViewPicker.select failed with err: ' + err);
      });
    } catch (err) {
      console.error('PhotoViewPicker failed with err: ' + err);
    }
  })

6. 唤起系统相机

 Button("唤起相机")
  .onClick(async () => {
    let context = getContext(this) as common.UIAbilityContext;
    try {
      let pickerProfile: cameraPicker.PickerProfile = {
        cameraPosition: camera.CameraPosition.CAMERA_POSITION_FRONT,
        videoDuration: 3
      };
      let pickerResult: cameraPicker.PickerResult = await cameraPicker.pick(context,
        [cameraPicker.PickerMediaType.PHOTO], pickerProfile);
      console.log("the pick pickerResult is:" + JSON.stringify(pickerResult));
    } catch (err) {
      console.error(`the pick call failed. error code: ${err.code}`);
    }
  })

7. 跳转到短信

Button("跳转到短信")
  .onClick((event: ClickEvent) => {
    let context = getContext(this) as common.UIAbilityContext;

    class info {
      contactName: string
      telephone: string
      constructor() {
        this.contactName = 'ZhangSan'
        this.telephone = '123'
      }
    }

    // class want
    let contactInfo: Array<Object> = new Array()
    contactInfo[0] = new info();
    let want: Want = {
      bundleName: 'com.ohos.mms',
      abilityName: 'com.ohos.mms.MainAbility',
      parameters: {
        contactObjects: JSON.stringify(contactInfo),
        content: "内容",
        pageFlag: 'conversation'
      }
    };
    context.startAbility(want)
      .then(() => {
        //...
      })
      .catch((err: BusinessError) => {
        console.error(`Failed to startAbility. Code: ${err.code}, message: ${err.message}`);
      });
  })

8. 选择联系人

 Button("选择联系人")
  .onClick((event: ClickEvent) => {
    contact.selectContact((err, data) => {
      if (err) {
        console.log(`selectContact callback: err->${JSON.stringify(err)}`);
        return;
      }
      console.log(`selectContact callback: success data->${JSON.stringify(data)}`);
    });
  })

总结

以上就是今天的内容,希望可以帮助到大家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值