この素晴らしい仕事をありがとう、
私たちはIOSブラウザでQRコードをスキャンするためにこのコードを実装しようとしています。WebRTCをサポートする最新のIOS11ベータでテストしています。
ethカメラとwebRTCgetUserMedia()にアクセスできます
ただし、永続的なエラーが発生します= 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互換のIOSWebkitバージョン= 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ベータ版がwebRTCgetUserMedia()をサポートするようになったと思います。 動作するデモを見ることができます(iOS11ベータ版がインストールされている場合のみ:-)-> https://tokbox.com/developer/sdks/js/- >
この報奨金はまだ有効です-そして私はそれを尊重します。
私たちはプロジェクトでinstascanを使用するつもりですが、いくつかのサポートが必要です(私たちは支払う準備ができています)
できる人はいますか
[1]問題を解決する
[2] instascanプロジェクトにオープンソースコードを提供する
[3]そしてあなたの努力のために少しのお金を稼ぎます
+1
@ddwyer最近、Instascan inoutアプリケーションを実装しました。 これは素晴らしいライブラリであり、期待どおりに機能しました。 リリースされたバージョンは使用しませんでしたが、マスターから新しいバージョンを作成しました。
これが私たちのアプリに新しいビルドを取得するために私がしたことです:
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ベータ版では、 <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はjavascriptGURUです-これはすべて現在機能しており、テストしてマージする必要がありますか? 誰かが興味を持っている場合に備えて、賞金は全額支払われました-あなたの助けに感謝します。
なぜsafari11で動作しないのですか
var userAgent = window.navigator.userAgent;
これはhttps://github.com/centogram/instascanからコンパイルされた動作バージョンです
instascan.zip
@centogramはあなたのios11コードでフロントカメラを使用することは可能ですか? ありがとう :)
@pandalionはい。ただし、コードを変更する必要があります。 制約を「environment」から「user」に変更するだけです。
@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