2017-08-08 97 views
11

针对非HTTPS网站禁用了版本60 webkitSpeechRecognition。 这是主要用于开发目的的主要问题。有没有办法绕过/禁用此安全功能?Chrome版本60 SpeechRecognition

问题是应该询问您是否要访问麦克风的弹出窗口不会显示在HTTP上,而是显示在HTTPS上。

为DEV设置HTTPS并不容易,所以我真的需要一种方法来绕过这个。

回答

1

我在本地尝试了这种方式,并且在没有HTTPS的情况下运行良好。如果文件直接从文件系统提供,但在静态文件服务器的帮助下(我使用的是python3 -m http.server),我无法正常工作。

希望它有帮助!

<html> 
    <head> 
     <title>Teste</title> 
    </head> 
    <body> 
     <button id="btn">capture</button> 
     <script src="https://code.jquery.com/jquery-3.2.1.min.js"> </script> 
     <script> 
      $(document).ready(function(){ 
       var recognition = new webkitSpeechRecognition(); 
       recognition.onresult = function(event) { 
        console.log(event) 
       } 
       var started = false; 
       $('#btn').click(function(){ 
        if (started){ 
         recognition.stop(); 
         $(this).html('capture'); 
         started = false; 
        } 
        else{ 
         recognition.start(); 
         started = true; 
         $(this).html('stop'); 
        } 
       }); 
      }) 
     </script> 
    </body> 
</html> 

编辑:jQuery是没有必要的。这只是我的一个老习惯:-)

2

简短的回答,没有。你不能禁用它。

但是,如果您有窗口,则可以通过IIS中的localhost托管它。有关于如何做到这一点的教程here。一旦向IIS注册它,您必须添加一些权限,以便您可以在浏览器中使用localhost进行查看。

如果您正在运行Linux,您可以安装Apache2并将其放入/var/www/public_html/{websitename}.然后您只需通过localhost即可通过浏览器访问它。有关于安装Apache here的教程。

在使用本地文件时,确实应该有一种方法可以使麦克风通过浏览器工作。一旦你设置了localhost,但使用起来相对简单。

-1

为什么不在开发服务器上使用免费的https证书(如letsencrypt)?我的意思是现在它是免费的,然后你可以通过https开发。