1. 实现invokeCamera接口,拉起原生相机,并通过callback回调方法返回拍照结果。源码参考[MainPage.ets]( )。
invokeCamera(callback: (uri: string) => void) {
const context = getContext(this) as common.UIAbilityContext;
let want: Want = {
action: ACTION_IMAGE_CAPTURE,
parameters: {
“callBundleName”: context.abilityInfo.bundleName,
}
};
let result: (error: BusinessError, data: common.AbilityResult) => void = (error: BusinessError, data: common.AbilityResult) => {
if (error && error.code !== 0) {
logger.error(${TAG_CAMERA_ERROR} ${JSON.stringify(error.message)}
);
return;
}
let resultUri: string = data.want?.parameters?.resourceUri as string;
if (callback && resultUri) {
callback(resultUri);
}
}
context.startAbilityForResult(want, result);
}
1. 在HTML页面中添加input标签,并在onChange属性中添加js方法,通过dom tree返回的描述事件相关信息的event对象接收ArkTS返回的照片,并显示在img标签上。源码参考[camera.html]( )。
图片预览
工程结构&模块类型
webgetcameraimage