我今天尝试使用web sdk在浏览器测试,发现大部分手机端浏览器(安卓)都不支持,引入后都报错 AgoraRTC is not defined。
chrome浏览器和最新的微信均没有该问题。
如何复现,使用下列代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>测试</title>
<!-- 引入声网sdk -->
<script src="https://download.agora.io/sdk/release/AgoraRTC_N-4.17.1.js"></script>
<!-- <script src="./AgoraRTC_N-4.17.2.js"></script> -->
<script src="//cdn.jsdelivr.net/npm/eruda"></script>
<script>
eruda.init()
</script>
</head>
<body>
<script>
console.log('获取声网sdk后,查看实例')
console.log(AgoraRTC)
</script>
<script>
setTimeout(() => {
console.log('再次尝试')
console.log(AgoraRTC)
}, 3000)
</script>
</body>
</html>
控制台报错:
下面的报错是正常的,因为我没用https(我之前用https测试也有AgoraRTC is not defined,我怀疑是我的证书问题,所以我就用http访问),
在最新版夸克浏览器、小米自带的浏览器都能复现该问题
这个是已知限制哈,主要是受限于 webRTC,详情可以参考文档:
此外,由于浏览器的安全策略对 HTTP 地址作了限制,声网 Web SDK 仅支持 HTTPS 协议或者 http://localhost,请勿使用 HTTP 协议部署你的项目。