HarmonyOS 鸿蒙Next 使用Web获取相机拍照图片案例

发布于 1周前 作者 htzhanglong 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 使用Web获取相机拍照图片案例 鸿蒙场景化案例

介绍

本示例介绍如何在HTML页面中拉起原生相机进行拍照,并获取返回的图片。

demo详情链接

https://gitee.com/harmonyos-cases/cases/tree/master/CommonAppDevelopment/feature/webgetcameraimage

1 回复

在HarmonyOS鸿蒙Next中,你可以通过Web组件实现拉起原生相机进行拍照并获取返回的图片。以下是一个详细的实现案例:

  1. HTML页面设置: 在HTML页面中添加一个input标签,并设置其typefile,同时添加onchange事件,当用户选择文件(拍照或从图库选择)时触发该事件。

    <input type="file" id="upload" accept="image/*" capture="upload" onchange="showPic()" />
    <img id="image" />
    <script>
    function showPic() {
        let tFile = event.target.files[0];
        if (tFile) {
            document.getElementById('image').setAttribute('src', URL.createObjectURL(tFile));
        }
    }
    </script>
    
  2. ArkTS页面设置: 在ArkTS页面中,添加Web组件,并设置onShowFileSelector属性来接收HTML页面中input的点击事件。在onShowFileSelector中调用invokeCamera接口拉起原生相机进行拍照,并通过回调方法获取照片的URI。

    Web({ src: $rawfile('camera.html'), controller: this.controller })
        .onShowFileSelector((event: FileResult) => {
            this.invokeCamera((uri: string) => {
                event.result.handleFileList([uri]);
            });
            return true;
        });
    
    invokeCamera(callback: (uri: string) => void) {
        // 实现拉起相机并返回照片URI的逻辑
    }
    
  3. 完整代码及案例: 完整代码及案例可以参考HarmonyOS NEXT开源组件市场的相关资源。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部