HarmonyOS web组件加载h5,h5拉起摄像头

HarmonyOS  web组件加载h5,h5拉起摄像头。

HarmonyOS
2024-09-05 10:06:28
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple
// xxx.ets 
import web_webview from '@ohos.web.webview' 
import abilityAccessCtrl, { PermissionRequestResult, Permissions } from '@ohos.abilityAccessCtrl'; 
 
@Entry 
@Component 
struct WebComponent { 
  controller: web_webview.WebviewController = new web_webview.WebviewController() 
 
  aboutToAppear() { 
    // 配置Web开启调试模式 
    web_webview.WebviewController.setWebDebuggingAccess(true); 
    let atManager = abilityAccessCtrl.createAtManager(); 
    atManager.requestPermissionsFromUser(getContext(this), ['ohos.permission.CAMERA', 'ohos.permission.MICROPHONE']) 
      .then(data => { 
        let result: Array<number> = data.authResults; 
        let hasPermissions1 = true; 
        result.forEach(item => { 
          if(item === -1) { 
            hasPermissions1 = false; 
          } 
        }) 
        if (hasPermissions1) { 
          console.info(" hasPermissions1") 
        } else { 
          console.info(" not hasPermissions1") 
        } 
      }).catch(() => { 
      return; 
    }); 
  } 
  build() { 
    Column() { 
      Web({ src: $rawfile('mediaDevices.html'), controller: this.controller }) 
        .onPermissionRequest((event) => { 
          if (event) { 
            AlertDialog.show({ 
              title: 'title', 
              message: 'text', 
              primaryButton: { 
                value: 'deny', 
                action: () => { 
                  event.request.deny() 
                } 
              }, 
              secondaryButton: { 
                value: 'onConfirm', 
                action: () => { 
                  event.request.grant(event.request.getAccessibleResource()) 
 
                } 
              }, 
              cancel: () => { 
                event.request.deny() 
              } 
            }) 
          } 
        }) 
    } 
  } 
}
<!-- index.html --> 
  <!DOCTYPE html> 
  <html> 
  <head> 
  <meta charset="UTF-8"> 
  </head> 
  <body> 
  <!--<video id="video" width="500px" height="500px" autoplay="autoplay"></video>--> 
  <canvas id="canvas" width="500px" height="500px"></canvas> 
  <br> 
  <input type="button" title="HTML5摄像头" value="开启摄像头" onclick="getMedia()"/> 
  <script> 
  function getMedia() 
  { 
    let constraints = { 
      video: {width: 500, height: 500}, 
      audio: true 
    }; 
    //获取video摄像头区域 
    <!--     let video = document.getElementByld("video");--> 
    //返回的Promise对象 
    let promise = navigator.mediaDevices.getUserMedia(constraints); 
    //then()异步,调用MediaStream对象作为参数 
    promise.then(function (MediaStream) { 
      <!--       video.srcObject = MediaStream;--> 
        <!--       video.play();--> 
      console.log('123') 
    }); 
  } 
  </script> 
  </body> 
  </html>

同时, module.json5中需要配置权限:“ohos.permission.CAMERA”、“ohos.permission.MICROPHONE”。

分享
微博
QQ
微信
回复
2024-09-05 18:28:51
相关问题
HarmonyOS web通过loadData加载h5标签
244浏览 • 1回复 待解决
HarmonyOS Web组件加载在线H5页面
227浏览 • 1回复 待解决
HarmonyOS webH5交互
720浏览 • 1回复 待解决
webview加载Vue h5失败
17819浏览 • 5回复 待解决
Web能直接加载h5代码吗?
3062浏览 • 2回复 待解决
Web中webview和H5交互
1104浏览 • 1回复 待解决
HarmonyOS web原生和H5如何交互?
528浏览 • 1回复 待解决
HarmonyOS H5拉起系统相机的样例代码
259浏览 • 1回复 待解决
Web组件h5页面如何交互?
247浏览 • 1回复 待解决
HarmonyOS webview h5的localstorage
417浏览 • 1回复 待解决
HarmonyOS h5拉起系统扫码页面的demo
233浏览 • 1回复 待解决
HarmonyOS H5页面加载缓存机制
290浏览 • 1回复 待解决
HarmonyOS h5和ArkTS通信
291浏览 • 1回复 待解决
HarmonyOS H5如何访问相册?
284浏览 • 1回复 待解决
H5通过url scheme拉起对应应用
549浏览 • 1回复 待解决
H5中的图片在Web组件中显示异常
265浏览 • 1回复 待解决