鸿蒙--------如何拉起常见的基础应用
前言
在日常开发中,我们会经常遇到在页面中拉起三方应用的场景,引导用户进行相关操作,像设置权限、唤起相机、跳转短信、跳转应用市场等,那么本文将为大家提供几个常见的拉起应用的方式。
一、核心代码解释
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)}`);
});
})
总结
以上就是今天的内容,希望可以帮助到大家。