谢谢你的这项伟大的工作,
我们正在尝试实现此代码以在 IOS 浏览器中扫描二维码,我们正在使用支持 Web RTC 的最新 IOS11 beta 进行测试。
我们可以访问 eth camera 和 webRTC getUserMedia()
但是我收到一个持久性错误 = Unhandled Promise Rejection: TypeError: Type error at line 13231
<br i="9"/>
case 3:<br i="10"/>
return this._stream = i.sent, i.abrupt("return", window.URL.createObjectURL(this._stream));<br i="11"/>
还有与 RTC 兼容的 IOS webkit 版本 = 604
所以可能需要更新第 13168 行
<br i="16"/>
if (!navigator.userAgent.match(/Version\/(\d+).(\d+)/))<br i="17"/>
return e.browser = "Unsupported webkit-based browser with GUM support but no WebRTC support.", e;<br i="18"/>
e.browser = "safari", e.version = this.extractVersion(navigator.userAgent, /AppleWebKit\/([0-9]+)./, 1), e.minVersion = 602<br i="19"/>
}<br i="20"/>
500 美元的赏金我无法解决这个问题也许 500 美元的赏金会鼓励比我更有能力的人解决这个问题。 我相信 IOS11 Beta 现在支持 webRTC getUserMedia() 。 您可以看到一个工作演示(仅当您安装了 iOS11 测试版时:-) --> https://tokbox.com/developer/sdks/js/ --> https://tokbox.com/developer/beta/safari /
这个赏金仍然有效 - 我会兑现它。
我们打算在我们的项目中使用 instascan,但需要一些支持(我们准备支付)
有没有人可以
[1] 解决问题
[2] 为 instascan 项目贡献开源代码
[3]并为您的努力赚取一点点钱
+1
@ddwyer我们最近在 out 应用程序中实施了 Instascan。 这是一个很棒的图书馆,并且按预期工作。 我们没有使用已发布的版本,而是从 master 构建了一个新版本。
这是我为我们的应用程序重新构建所做的工作:
git clone [email protected]:schmich/instascan.git
cd instascan/
npm install gulp-cli -g
npm install
gulp release
cp dist/instascan.min.js /path/to/our/libraries/include/dir
根据 ID 选择相机不起作用。 它一直使用前置摄像头。 我们通过向 camera.js 添加一个丑陋的补丁来解决这个问题:
diff --git a/src/camera.js b/src/camera.js
index 5403b3c..4a46e32 100644
--- a/src/camera.js
+++ b/src/camera.js
@@ -31,6 +31,11 @@ class Camera {
}
};
+ var userAgent = window.navigator.userAgent;
+ if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i)) {
+ constraints.video.facingMode = "environment";
+ }
+
this._stream = await Camera._wrapErrors(async () => {
return await navigator.mediaDevices.getUserMedia(constraints);
});
我不会为此更改创建 PR,因为它不是一个好的解决方案。 但它有效,您可以在您的项目中随意使用它。
仅供参考,在 iOS11 beta 中, <video />
元素需要属性playsinline
。 似乎有一段时间是一个错误,但现在它很快就结束了测试版 idk ...
https://github.com/serratus/quaggaJS/commit/e8352c7017a2f7a7500fa054f342b9689ff5d8b7#diff -afd7828cb7f3e7a1f8fe7305f50b5021
https://github.com/PaulKinlan/qrcode/commit/b79718b2391969b2291db93ba388b4c2b2f3f9d4
我可以确认我们遵循了@inorbert和 shazam 的指示……就像魔术一样,一切正常。
我们将寻求改进我们发现的内容并报告。
——达伦
这已在 schmich/instascan/pull/78 中修复。 不要忘记在您的项目中手动包含最新的webrtc-adapter
。
@PallasKatze是一个 javascript
为什么我不在 safari11 上工作
var userAgent = window.navigator.userAgent;
这是一个从https://github.com/centogram/instascan编译的有效版本
instascan.zip
@centogram我可以将前置摄像头与您的 ios11 代码一起使用吗? 谢谢 :)
@pandalion是的,但您需要修改代码。 您只需要将约束条件从“环境”更改为“用户”。
@centogram像魅力一样工作。 格拉斯!
@centogram @hrrsppzgl
我必须修改哪一行?
@centogram @hrrsppzgl
我必须修改哪一行?
@adelsadek1
你真正需要什么? 您是否从这里下载了@centogram修改后的代码?
https://github.com/centogram/instascan
@hrrsppzgl是的,我有但仍然无法工作@centogram提到要修改行,但我没有要修改哪一行
@hrrsppzgl是的,我有但仍然无法工作@centogram提到要修改行,但我没有要修改哪一行
搜索
面对模式:{精确:“环境”},
将“环境”更改为“用户”
嗨@lnorbert
我试着按照你的步骤,
git clone [email protected]:schmich/instascan.git
cd instascan/
npm install gulp-cli -g
npm install
gulp release
cp dist/instascan.min.js /path/to/our/libraries/include/dir
但是当尝试第一个 cmd 时,它会抛出以下错误
拜托,你能帮我一下吗?
谢谢
最有用的评论
这是一个从https://github.com/centogram/instascan编译的有效版本
instascan.zip