整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

只用HTML,如何打开手机相机?前端小哥现场教学

lex 发自 凹非寺
量子位 | 公众号 QbitAI

HTML不是编程语言,但这并不妨碍前端工程师把它玩出花儿来。

比如,有人就拿HTML来访问用户的相机——

在网页上,点击按钮即可直接打开手机前置镜头来拍照。

(没错,就是前置镜头!小哥可能有镜子之类的)

也可以调用手机的后置镜头,开启摄像模式。

值得注意的是,在这里,小哥只用了HTML语言就实现了上述功能。

他利用HTML的capture属性,只需设置几个input参数,再加上几行代码搞定了。

比起别的实现方式,这样可以更便捷地获取用户相机权限;而且没什么安全问题。

不出所料,一大波程序员纷纷前来围观。有人表示:

用HTML capture属性直接访问相机,确实比用JavaScript更方便


这位小哥的网名叫Austin Gil,他是一位从事网页开发的工程师。

下面就跟随小哥分享的内容,一起来看看具体实现步骤吧。

如何用HTML打开相机?

首先当然是写代环节。

小哥创建了一个index.html文档,配合HTML的accpet属性,来指定不同标签所要capture的文件的具体属性。

在这里,他设置了“environment”“user”两个标签。

当用户点击environment时,可以调用设备的后置镜头,并拥有录像功能;而当用户点击user时,就能打开设备前置镜头来拍照了。

具体代码如下:



到这里,眼尖的人可能已经发现:没有提示用户是否打开访问相机的权限,网页就直接调用了相机。

那这样操作,有没有安全风险啊?

对此,小哥给出答案:无额外风险

因为浏览器其实并不能真正控制用户相机(虽然看起来好像可以直接访问),而不过是能轻松上传相机生成的新文件罢了。

说人话——对用户而言,浏览器通过HTML只能打开摄像头;如果需要把照片或者视屏展示到网站,或者保存下来,仍然需要用到JavaScript的MediaDevices API。

有网友补充道,这种操作方式比纯用JavaScript更安全。

因为运用JS的话,在用户允许访问相机后,浏览器就能直接控制摄像头。

而在Web 3.0标准之后(现在主要用的是Web 5标准),规定网页不能直接访问用户的镜头。

不过,小哥也指出:这种直接通过HTML指令打开用户用户摄像头的方式还存在目前不足,比如兼容性不太好

△图源caniuse.com:红色框表示不支持;绿色框表示支持;棕色框表示部分支持;灰色框表示未知

量子位亲测了一下小哥的这段代码,结果显示:

点击environment和user按钮,在MacBook上分别可以打开视频格式和图片格式的文件;

而在iPhone上,使用百度等浏览器,真的可以直接打开前置和后置摄像头。

感兴趣的伙伴们可以用下面链接中的代码试试~

传送门:
https://austingil.com/html-capture-attribute/
参考链接
[1]https://www.youtube.com/watch?v=DSTXUEHZRiU&t=1s
[2]https://news.ycombinator.com/item?id=32738501

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

喽,宝贝们

我是今天依旧爱你们的O妹呀~

前几天O妹看到一则新闻:

小伙手机丢失被盗刷31万

报警后结局大反转

给O妹吓得一个激灵

想起来从来没和大家说过

手机丢失后应该如何做这件事

开启这个话题前

首先需要明确一件事

互联社交如此发达的如今

对于O妹这种人来说

手机丢了就差不多=我丢了

是一件极其危险的事情

再买一个新的都是后话了

最关键是我的支付宝、微信付款

以及马云爸爸的蚂蚁花呗

查找手机功能

为了防止以上情况的发生,一般大家拿到新手机,O妹都会建议大家打开【查找手机】功能。

这个功能可不是摆设,当你手机丢失,TA可是有大用处的!若你的手机不慎丢失,可以对手机进行定位、锁死手机、抹掉数据、播放声音操作。

查找手机功能使用必须满足三个条件:

1、手机必须登录OPPO账号并打开查找手机功能;

2、手机处于开机状态;

3、手机处于数据网络或无线网连接状态。

• 查找手机定位最高精准度约在10米左右,可以查看手机的大概位置,可自定义选择响铃提醒、锁屏、格式化清除数据,帮助您确定手机的具体位置、保证您的手机的信息安全。

手机设置路径

根据不同的系统,OPPO手机打开查找功能操作路径也有稍微的差别:

• ColorOS 2.1及以上版本版本,进入“设置”--“云服务”--登录OPPO帐号--“查找手机”;

• 其他ColorOS 版本,桌面--“云服务”--登录OPPO帐号--“查找手机”。

点击按钮打开查找手机功能,按照页面提示步骤设置,设置完成后手机端就打开了。若手机不慎丢失,可登陆以下网址进行查找手机操作:

https://cloud.oppo.com/login.html

查找手机 - 功能介绍

进入云服务网页,登录OPPO账号之后选择“查找手机”你会发现这样的界面——

定位功能

选择需要定位的手机,可以自动快速定位到您手机当前所在大概位置↓

选择播放声音

手机会以最大声音播放嘀嘀嘀的声音。(忘记手机放在哪个位置的时候也可以通过这个方法快速确定手机位置哦)

锁死手机功能

失主可以设置新的锁屏密码,开启锁死手机后手机将被锁死,同时开启数据网络和定位功能,便于定位手机。捡到手机的人需要验证设定好的锁屏密码【解除锁死】,手机才能正常使用。

选择抹掉数据

手机全部内容都将被抹除,抹除后不能再通过“查找手机”定位、响铃、锁死或抹除。但仍需要验证你的OPPO帐号密码才能激活使用。

最后提示大家一点:

在被查手机没网时,可通过短信定位:若需使用短信定位,需要手机已插入能收发短信的中国大陆境内运营商SIM卡;

ColorOS 3.1-5.0,手机没网络的时候,默认可以使用短信进行定位;

ColorOS 5.1及之后系统,需在设置--云服务--查找手机,打开“手机无网络时用短信查找”开关(默认关闭),没网络时才可以使用短信定位。

以上就是O妹今天为大家带来的全部内容啦,老话说得好:不怕一万就怕万一!学完今天的课程,赶紧打开手机设置起来吧√

近有需求要实现用一个网址,在手机和电脑上实现不一样的效果。这种需求最好是使用响应式来实现,但我只有一个页面有这种需求,写响应式工作量太大,直接写2个页面做个移动端跳转。

同一个网址,在电脑和手机上展示不一样的效果

只有当手机打开时才需要跳转到指定页面,电脑打开时不用跳转。这样同一个链接就在电脑端和手机端实现不一样的展示效果。

试了试下面2个方法:

  • <!--百度移动适配META声明-->
  • <meta http-equiv="mobile-agent" content="format=xhtml;url=http://www.XX.com/1.html"> 
  • <!--移动端访问首页跳转到指定页面-->
  • <script type="text/javascript">uaredirect("http://www.XX.com/1.html");</script>
    <script type="text/javascript">if(window.location.toString().indexOf('pref=padindex') != -1){}else{if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){if(window.location.href.indexOf("?mobile")<0){try{if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){window.location.href="http://www.XX.com/1.html";}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}}</script>

    保存记录!