Cocos 2 使用 webview 嵌入页面,摄像头调用没权限问题

Cocos 2 使用 webview 嵌入页面,摄像头调用没权限问题

嗯,这么说呢,这篇博文看自己的实际需求哈,标题写的可能不是很准确。

我这边呢,是遇到这样一个功能,就是有一个服务,他是的页面呢,是打开电脑的摄像头,需要在cocos 程序里面呢,展示摄像头的实时画面。看上去挺简单哈,但是实际做起来,还是有点问题。

背景

另一项目组提供一个web服务,这个服务呢,是部署到后端服务器的web项目,最终提供一个页面的访问链接,这个访问链接呢,浏览器打开后,会自动打开电脑的摄像头采集画面。这个功能呢,需要在 cocos 中使用,也就是说需要在 cocos 中打开摄像头,实现相应的功能。

最开始我是这么想的, cocos 直接打开设备摄像头有点麻烦,所以我就打算直接使用 cocos 提供的组件 webview,直接把提供的 web 页面嵌入进来,这样子听起来就十分的简单了,OK,那就简单的试验一下。

cocos 使用 webview 嵌入页面

这个功能十分的简单,cocos 提供了 webview 组件,只需要设置一下 url 就可以了。

但是有一个问题需要注意一下,就是 cocos 啊,目前只是支持插入 url,不能使用本地的 html 文件,所以提供的 web 页面需要部署起来,我自己本地使用 nginx 部署了一下。

使用很简单,添加到页面一个 webview 组件,然后把 url 填写上:

好了,完成了,我们现在只需要打开页面运行一下就可以了!

看上面截图,摄像头画面打不开,控制台报错了,报的意思是没有授权!

所以说我们需要授权一下。

解决问题

解决很简单,只需要在嵌入网页的 iframe 标签中添加一下授权就可以:

html 复制代码
<iframe src="./wjw.html" frameborder="0" allow="microphone *;camera *;"></iframe>

主要就是加上 allow="microphone *;camera *;" 这段代码就可以了。

但是现在有这样一个问题,就是我们使用的是 webview 嵌套的网页,他是 cocos 提供的组件,他只能配置个 url,没有什么 iframe ,怎么办? 有办法!

首先我们给使用的 webview 关联一个 ts 文件,然后我们呢,打印一下这个 node:

ts 复制代码
    start() {
        console.log("WebViewFun start", this.node);
    }

我们看一下 node 里面有没有 iframe 这个标签!

看!找到啦!!!

后面就简单了,给他加上就可以了!加上之后,在把 url 赋值上去,还有,之前在组件配置的 url 就可以清空了,我们后边动态给赋值上去:

ts 复制代码
    start() {
        let iframeDom = this.node.getComponent(cc.WebView)["_impl"]["_iframe"];
        iframeDom.allow = 'microphone *;camera *'
        iframeDom.src = "http://127.0.0.1/"
    }

好了,我们看一下效果:

诶,画面出来了!完成!!

相关推荐
杰克逊的日记9 天前
linux部署安装wordpress
android·java·linux·webview
RogerLHJ11 天前
cocos creator 的 widget组件的使用及踩坑
typescript·游戏引擎·游戏程序·cocos2d
MavenTalk15 天前
微信小程序里的小游戏研发需要什么技术栈
前端·微信小程序·小程序·前端框架·cocos2d
watl017 天前
iOS平台接入Facebook登录
c++·游戏·cocoa·cocos2d
水煮肉片饭18 天前
【包教包会】CocosCreator3.x——重写Sprite,圆角、3D翻转、纹理循环、可合批调色板、不影响子节点的位移旋转缩放透明度
游戏·typescript·游戏引擎·cocos2d
Mis_wenwen20 天前
flutter 解决webview加载重定向h5页面 返回重复加载问题
flutter·h5·webview·重定向
路人甲ing..20 天前
在树莓派上使用自带的摄像头采集视频
python·opencv·树莓派·摄像头·微处理器
音仔小瓜皮25 天前
【bug记录10】同一iOS webview页面中相同的两个svg图标出现部分显示或全部不显示的情况
前端·bug·html5·xhtml·webview
/**书香门第*/1 个月前
Cocos creator 3.8 支持的动画 7
学习·游戏·游戏引擎·游戏程序·cocos2d
刚刚好ā1 个月前
uni-app跳转外部链接方式汇总--超全
前端·vue.js·uni-app·vue·webview