Instascan: IOS11 - التوافق مع Web RTC

تم إنشاؤها على ١ يوليو ٢٠١٧  ·  18تعليقات  ·  مصدر: schmich/instascan

شكرا لك على هذا العمل الرائع ،
نحاول تنفيذ هذا الرمز لمسح رمز الاستجابة السريعة في متصفح IOS ، ونختبر باستخدام أحدث إصدار بيتا من IOS11 والذي يدعم Web RTC.

لدينا وصول إلى كاميرا eth و webRTC getUserMedia ()

ومع ذلك ، فإنني أتلقى خطأ مستمرًا = رفض الوعد غير المعالج: خطأ في النوع: اكتب خطأ في السطر 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"/>

أيضًا إصدار webkit الخاص بـ IOS وهو متوافق مع 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 Beta يدعم الآن webRTC getUserMedia (). يمكنك مشاهدة عرض توضيحي عملي (فقط إذا كان لديك الإصدار التجريبي من iOS11 مثبتًا :-) -> https://tokbox.com/developer/sdks/js/ -> https://tokbox.com/developer/beta/safari /

هذه المكافأة لا تزال سارية - وسأحترمها.
نعتزم استخدام instascan في مشروعنا ، لكننا بحاجة إلى بعض الدعم (الذي نحن على استعداد لدفع ثمنه)
هل هناك من يستطيع
[1] حل المشكلة
[2] المساهمة بكود مفتوح المصدر في مشروع instascan
[٣] واكسب القليل من المال مقابل جهودك

+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 . يبدو أنه خطأ لبعض الوقت ولكن الآن بعد أن نفد الإصدار التجريبي قريبًا أتساءل ...

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 هو جافا سكريبت جورو - كل هذا يعمل الآن وربما يجب اختباره ودمجه؟ في حال كان أي شخص مهتمًا ، تم دفع المكافأة بالكامل - شكرًا على مساعدتك.

لماذا لا أعمل على safari11
var userAgent = window.navigator.userAgent ،

  • إذا (userAgent.match (/ iPad / i) || userAgent.match (/ iPhone / i)) {
  • قيود .video.facingMode = "البيئة" ؛
  • }
    +
    this._stream = wait Camera._wrapErrors (async () => {
    return await navigator.mediaDevices.getUserMedia (قيود) ؛
    }) ؛

إليك إصدار تم تجميعه من https://github.com/centogram/instascan
instascan.zip

centogram هل يمكنني استخدام الكاميرا الأمامية مع كود ios11 الخاص بك؟ شكرا :)

pandalion نعم ، لكنك ستحتاج إلى تعديل الكود. سترغب فقط في تغيير قيود وضع القيود .video.facingMode من "البيئة" إلى "المستخدم".

centogram تعمل مثل السحر. جرات!

تضمين التغريدة
أي خط يجب علي تعديله؟

تضمين التغريدة
أي خط يجب علي تعديله؟

@ adelsadek1
ماذا كنت حقا بحاجة؟ هل قمت بتنزيل رمز centogram المعدل من هنا؟
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 التقييمات