
回复
实现一个页面,包含以下按钮和功能:
最终效果如图👇
在 module.json5
添加:
json
复制编辑
"requestPermissions": [
{ "name": "ohos.permission.CAMERA" },
{ "name": "ohos.permission.WRITE_MEDIA" }
]
ts
复制编辑
import mediaLibrary from '@ohos.multimedia.mediaLibrary';
import promptAction from '@ohos.promptAction';
import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
import featureAbility from '@ohos.ability.featureAbility';
async function takePhoto() {
const context = featureAbility.getContext();
const atManager = abilityAccessCtrl.createAtManager();
const result = await atManager.requestPermissionsFromUser(context, ['ohos.permission.CAMERA']);
if (result.authResults[0] === 0) {
// 打开系统相机(这里只做跳转,具体需集成子应用或系统调用)
promptAction.showToast({ message: '📸 相机调用成功!此处可嵌入拍照组件' });
}
}
📌 注:真实拍照功能在部分设备需使用
ohos.media.image
模块或子组件封装能力实现。
json
复制编辑
"requestPermissions": [
{ "name": "ohos.permission.LOCATION" }
]
ts
复制编辑
import geolocation from '@ohos.geoLocation';
async function getLocation() {
try {
const result = await geolocation.getCurrentLocation();
promptAction.showToast({
message: `当前经纬度:${result.latitude}, ${result.longitude}`
});
} catch (err) {
promptAction.showToast({ message: '获取定位失败' });
}
}
ts
复制编辑
import { ShareFeature } from '@ohos.share';
function shareText() {
ShareFeature.shareText({
text: '鸿蒙太强了,我正在开发 HarmonyOS App!',
title: '分享内容',
dialogTitle: '分享到'
});
}
ts
复制编辑
@Entry
@Component
struct DeviceToolkit {
build() {
Column() {
Button('拍照').onClick(() => takePhoto())
Button('获取定位').onClick(() => getLocation())
Button('系统分享').onClick(() => shareText())
}
.space(20)
.padding(30)
.alignItems(HorizontalAlign.Center)
}
}
问题 | 解决方案 |
---|---|
权限请求无效 | 检查是否调用 requestPermissionsFromUser |
相机无反应 | 使用模拟器调试需配置子应用相机模块 |
定位失败 | 确保开启 GPS 并授权系统定位权限 |
分享无效 | 分享组件需目标设备支持对应通道 |
《HarmonyOS NEXT适配与开发趋势:你准备好了吗?》
将全面解析 ArkTS 的未来、原生鸿蒙的挑战与红利!