Instascan: IOS11 - совместимость с Web RTC

Созданный на 1 июл. 2017  ·  18Комментарии  ·  Источник: schmich/instascan

Спасибо за эту Великую работу,
мы пытаемся реализовать этот код для сканирования QR-кода в браузере IOS, мы тестируем последнюю бета-версию IOS11, которая поддерживает Web RTC.

у нас есть доступ к камере eth и webRTC getUserMedia ()

однако я получаю постоянную ошибку = Необработанное отклонение обещания: TypeError: Введите ошибку в строке 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"/>

также версия IOS webkit, совместимая с RTC = 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"/>

Самый полезный комментарий

Вот работающая версия, скомпилированная с https://github.com/centogram/instascan
instascan.zip

Все 18 Комментарий

Награда в размере 500 долларов Я не могу решить эту проблему Возможно, награда в размере 500 долларов подтолкнет кого-то, кто более способен, чем я, решить эту проблему. Я считаю, что бета-версия IOS11 теперь поддерживает webRTC getUserMedia (). Вы можете увидеть рабочую демонстрацию (только если у вас установлена ​​бета-версия iOS11 :-) -> https://tokbox.com/developer/sdks/js/ -> https://tokbox.com/developer/beta/safari /

Эта награда все еще действительна - и я буду ее отмечать.
мы намерены использовать instascan в нашем проекте, но нуждаемся в некоторой поддержке (за которую мы готовы платить)
есть ли кто-нибудь, кто может
[1] решить проблему
[2] внести открытый исходный код в проект instascan.
[3] и заработайте немного денег за свои усилия

+1

@ddwyer Недавно мы внедрили Instascan в наше приложение. Это отличная библиотека, и она работала так, как ожидалось. Мы не использовали выпущенную версию, а построили свежую от мастера.

Вот что я сделал, чтобы получить свежую сборку нашего приложения:

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

Выбор камеры по идентификатору не сработал. Всегда использовала переднюю камеру. Мы решили эту проблему, добавив некрасивый патч в 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);
     });

Я бы не стал создавать пиар для этого изменения, потому что это не лучшее решение. Но он работает, смело используйте его в своих проектах.

Просто к сведению, в бета-версии 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 - это ГУРУ javascript - сейчас все работает, и, может быть, стоит протестировать и объединить? в случае, если кому-то интересно, награда была выплачена полностью - спасибо за помощь.

почему я не работаю на safari11
var userAgent = window.navigator.userAgent;

  • if (userAgent.match (/ iPad / i) || userAgent.match (/ iPhone / i)) {
  • constraints.video.facingMode = "среда";
  • }
    +
    this._stream = await Camera._wrapErrors (async () => {
    return await navigator.mediaDevices.getUserMedia (ограничения);
    });

Вот работающая версия, скомпилированная с https://github.com/centogram/instascan
instascan.zip

@centogram Могу ли я использовать переднюю камеру с вашим кодом ios11? Благодарность :)

@pandalion да, но вам нужно будет изменить код. Вам просто нужно изменить ограничение constraints.video.facingMode с «environment» на «user».

@centogram работает как шарм. Грац!

@centogram @hrrsppzgl
в какой строке я должен его изменить?

@centogram @hrrsppzgl
в какой строке я должен его изменить?

@ adelsadek1
Что тебе действительно нужно? Вы скачали отсюда модифицированный код
https://github.com/centogram/instascan

@hrrsppzgl да, у меня есть, но все еще не работает @centogram, упомянутая для изменения строки, но я не

@hrrsppzgl да, у меня есть, но все еще не работает @centogram, упомянутая для изменения строки, но я не

Ищи
FaceMode: {точное: "среда"},
Измените «окружение» на «пользователь»

image

Привет @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 он выдает ошибку ниже

Screenshot 2019-07-15 at 7 20 52 PM

Пожалуйста, вы можете мне помочь?

Спасибо

Была ли эта страница полезной?
0 / 5 - 0 рейтинги