HarmonyOS 如何在h5页面直接拉起系统相册?

<input type="file" id="imageInput" accept="image/*" capture="camera">
  • 1.
HarmonyOS
2024-11-07 08:43:47
1.2w浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

参考如下:

<!DOCTYPE html> 
  <html> 
  <head> 
  <meta name="viewport" content="width=device-width, initial-scale=1.0" charset="utf-8"> 
  <script> 
  function myFunction(mystr) 
  { 
    var img = new Image(); 
    img.width = 100; 
    img.height = 50; 
    img.src = "data:image/png;base64,"+mystr; 
    document.body.appendChild(img); 
    <!-- let str=objName.test()--> 
  console.log(mystr) 
    console.log("这部分是将arkts发送过来的str渲染到h5页面上,或者存在h5侧的变量中") 
  } 
window.onload = function() { 
  // 获取文件输入元素 
  var fileInput = document.getElementById('upload'); 
 
  // 监听文件输入的改变事件 
  fileInput.addEventListener('change', function(e) { 
    // 获取选中的文件 
    var file = e.target.files[0]; 
    // 创建一个FileReader对象 
    var reader = new FileReader(); 
 
    // 定义文件读取完成后的回调函数 
    reader.onloadend = function() { 
      // 获取图片元素 
      var img = document.getElementById('preview'); 
      // 将读取到的结果赋值给图片元素的src属性 
      img.src = reader.result; 
    } 
 
    // 读取文件内容 
    if (file) { 
      reader.readAsDataURL(file); 
    } 
  }); 
} 
 
  </script> 
  </head> 
  <body> 
  <form id="upload-form" enctype="multipart/form-data"> 
  <!-- 修改type属性为camera --> 
  <input type="file" id="upload" name="upload" accept="image/*" capture="camera" /> 
  <!-- 添加一个图片元素用于展示图片 --> 
  <img id="preview"/> 
  </form> 
  <div id="155134"></div> 
  </body> 
  </html>
Web({ src: $rawfile('TestonShowFileSelector.html'), controller: this.controller }) 
  .javaScriptAccess(true) 
  .domStorageAccess(true) 
  .onShowFileSelector((event) => { 
    // //-------调用相册------------------------- 
    console.log('MyFileUploader onShowFileSelector invoked') 
    const photoSelectOptions = new picker.PhotoSelectOptions(); 
    // 过滤选择媒体文件类型为IMAGE_VIDEO_TYPE 
    photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_VIDEO_TYPE; 
    // 选择媒体文件的最大数目 
    photoSelectOptions.maxSelectNumber = 2; 
    //let uris: Array<string> = []; 
    const photoViewPicker = new picker.PhotoViewPicker(); 
    photoViewPicker.select(photoSelectOptions).then((photoSelectResult: picker.PhotoSelectResult) => { 
      this.uris = photoSelectResult.photoUris; 
      let file1 = fs.openSync(this.uris[0]) 
      let array:ArrayBuffer = new ArrayBuffer(fs.statSync(file1.fd).size) 
      fs.readSync(file1.fd,array) 
      let unit = new Uint8Array(array) 
      let base64 = new util.Base64Helper(); 
      let mystr = base64.encodeToStringSync(unit); 
      this.base64Str = "myFunction(\"" + mystr + "\")" 
      this.controller.runJavaScript(this.base64Str) 
      console.info('photoViewPicker.select to file succeed and uris are:' + this.uris); 
    }).catch((err: BusinessError) => { 
      console.error(`Invoke photoViewPicker.select failed, code is ${err.code}, message is ${err.message}`); 
    }) 
 
    return false 
  }) 
 
} 
} 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
分享
微博
QQ
微信
回复
2024-11-07 17:29:49


相关问题
如何在HarmonyOS中调试h5页面
1447浏览 • 1回复 待解决
HarmonyOS H5页面保存图片到本地相册
529浏览 • 1回复 待解决
HarmonyOS 外部H5页面拉起手机银行app
538浏览 • 1回复 待解决
HarmonyOS h5页面缩放问题
1534浏览 • 1回复 待解决
HarmonyOS H5页面加载缓存机制
921浏览 • 1回复 待解决
HarmonyOS H5页面localstorage为null
594浏览 • 1回复 待解决
HarmonyOS webview H5页面事件监听
815浏览 • 1回复 待解决
如何使H5页面适配多设备?
1298浏览 • 1回复 待解决
HarmonyOS 通过webview改变H5页面字体
589浏览 • 1回复 待解决
HarmonyOS Web组件加载在线H5页面
699浏览 • 1回复 待解决
HarmonyOSh5页面怎样判断当前环境?
566浏览 • 1回复 待解决
HarmonyOS h5页面是否可以适配Harmony OS
1045浏览 • 1回复 待解决
HarmonyOS H5页面使用alert函数不生效
403浏览 • 1回复 待解决