IOS11 होम स्क्रीन वेब ऐप पर कैमरा कैसे एक्सेस करें?


131

सारांश

हम एक iOS11 (सार्वजनिक रिलीज़) होम स्क्रीन वेब ऐप से WebRTC या फ़ाइल इनपुट, नीचे दिए गए विवरण का उपयोग करके कैमरे तक नहीं पहुँच सकते। हमारे उपयोगकर्ता कृपया कैमरे तक कैसे पहुंच सकते हैं?

हम https पर वेब ऐप पेज पर सेवा दे रहे हैं।

अपडेट, अप्रैल

IOS 11.3 की सार्वजनिक रिलीज ने इस मुद्दे को तय कर दिया है और फ़ाइल इनपुट कैमरा एक्सेस फिर से काम कर रहा है!

अपडेट, मार्च

जैसा कि यहां के लोगों ने कहा है कि Apple डॉक्स सलाह देते हैं कि वेब ऐप कैमरा फंक्शन 11.3 में सेवाकर्मियों के साथ लौट रहा है। यह अच्छा है लेकिन हम अभी तक निश्चित नहीं हैं यदि हम सभी को फिर से पुनः स्थापित करना चाहते हैं जब तक कि हम 11.3GM पर पूरी तरह से परीक्षण नहीं कर सकते।

समाधान, नवंबर

हमने उम्मीद खो दी कि एप्पल इसे ठीक करना चाहता है और आगे बढ़ गया। IOS "होम स्क्रीन में जोड़ें" फ़ंक्शन को निकालने के लिए हमारे वेब ऐप को संशोधित किया और प्रभावित उपयोगकर्ताओं को किसी भी पिछले होम स्क्रीन आइकन को हटाने के लिए कहा।

अपडेट, 6 दिसंबर

iOS 11.2 और iOS 11.1.2 ठीक नहीं हैं।

वर्कअराउंड, 21 सितंबर

ऐसा लगता है कि हम वेब ऐप के मौजूदा ग्राहकों से पूछ सकते हैं

  • iOS11 में अपग्रेड नहीं - इसके साथ शुभकामनाएँ :)
  • iOS कैमरे में फ़ोटो लें और फिर उन्हें वेब ऐप में वापस चुनें
  • अगले ios बीटा के लिए प्रतीक्षा करें
  • एक सफ़ारी इन-ब्राउज़र पृष्ठ के रूप में पुनर्स्थापित करें (हम ATHS तर्क को हटाने के बाद)
  • Android पर स्विच करें

फ़ाइल इनपुट

हमारा वर्तमान उत्पादन कोड एक फ़ाइल इनपुट का उपयोग करता है जिसने iOS 10 और पुराने वर्षों के लिए ठीक काम किया है। IOS11 पर यह सफारी टैब के रूप में काम करता है लेकिन होम स्क्रीन ऐप से नहीं। बाद के मामले में कैमरा खोला जाता है और केवल एक काली स्क्रीन दिखाई जाती है, इसलिए यह अनुपयोगी है।

   <meta name="apple-mobile-web-app-capable" content="yes">
   ...
   <input type="file" accept="image/*">

WebRTC

IOS11 पर Safari 11 WebRTC मीडिया कैप्चर प्रदान करता है जो बहुत अच्छा है।

हम यहां जोड़े गए नमूना कोड के अनुसार navigator.mediaDevices.getUserMedia का उपयोग करके डेस्कटॉप और मोबाइल पर एक सामान्य वेब पेज पर कैनवास पर एक कैमरा छवि कैप्चर कर सकते हैं

जब हम पृष्ठ को iPad या iPhone होम स्क्रीन पर जोड़ते हैं, navigator.mediaDevicesतो undefinedअनुपयोगी हो जाता है ।

    <meta name="apple-mobile-web-app-capable" content="yes">
    ...
    // for some reason safari on mac can debug ios safari page but not ios home screen web apps 
    var d = 'typeof navigator : ' + typeof navigator; //object
    d += 'typeof navigator.mediaDevices : ' + typeof navigator.mediaDevices; // undefined
    // try alternates
    d += 'typeof navigator.getUserMedia  : ' + typeof navigator.getUserMedia; // undefined
    d += 'typeof navigator.webkitGetUserMedia  : ' + typeof navigator.webkitGetUserMedia; // undefined
    status1.innerHTML = d;

5
मुझे उम्मीद है कि वे इसे ठीक कर देंगे, लेकिन सफारी के यूएक्स को नीचा करके अपने ऐप स्टोर में डेवलपर्स को धक्का देने का यह एक और उदाहरण हो सकता है।
15_

3
मैं प्रगतिशील वेब-एप्लिकेशन विकास सीखने की कोशिश कर रहा हूं और एंड्रॉइड और आईओएस पर एक ऐप का परीक्षण करते समय मैं इस समस्या में भी भाग गया। ब्राउजर में ऐप को ब्राउजिंग करना ठीक रहता है, लेकिन एक बार जब मैं सफारी से "होम स्क्रीन पर सेव" करता हूं और ऐप की तरह इसे इस्तेमाल करने की कोशिश करता हूं, तो मुझे कैमरा एक्सेस करने की कोशिश करने पर ब्लैक स्क्रीन मिलती है।
टुटली

2
iOS: 11.2.1 - समस्या बनी रहती है ...
aLiEnHeAd

2
iOS: 11.2.2 - समस्या बनी रहती है ...
MrRobot

3
iOS 11.4.1 मुझे किसी भी भाग्य किसी के लिए काम करने लगता नहीं है?
अम्मा

जवाबों:


25

हमारे पास काफी समान समस्या है। अब तक हम जो एकमात्र काम करने में सक्षम थे, वह है इसके लिए मेटा टैग को हटाकर "ऐप्पल-मोबाइल-वेब-ऐप-सक्षम" होना और उपयोगकर्ताओं को इसे सफारी में खोलने देना, जहां सब कुछ सामान्य रूप से काम करता प्रतीत होता है।


24

अद्यतन : जबकि कुछ पहले प्रकाशित चेंजलॉग्स और पोस्टिंग ने मुझे विश्वास दिलाया कि manifest.jsonइसके बजाय वेब ऐप्स का उपयोग करने से apple-mobile-web-app-capableअंत में एक उचित WebRTC कार्यान्वयन तक पहुंच होगी, दुर्भाग्य से यह सच नहीं है, क्योंकि यहां अन्य लोगों ने बताया है और परीक्षण की पुष्टि की है। उदास चेहरा। इसके कारण होने वाली असुविधाओं के लिए खेद है और चलो आशा करते हैं कि एक आकाशगंगा में एक भाग्यशाली दिन, दूर दूर तक Apple अंततः हमें (गैर-सफारी) WebKit द्वारा संचालित विचारों में कैमरा एक्सेस देगा ...

हां, जैसा कि दूसरों ने उल्लेख किया है, गेटअमेरिया केवल सफारी में ही उपलब्ध है, लेकिन न तो UIWebView में और न ही WKWebView में, इसलिए दुर्भाग्य से आपके एकमात्र विकल्प हैं

  • <meta name="apple-mobile-web-app-capable" content="yes">आपके 'ऐप' को हटाने पर एक सामान्य सफारी टैब चलता है, जहाँ गेटसमेरिया सुलभ है
  • अपाचे कॉर्डोवा जैसे ढांचे का उपयोग करना जो आपको अन्य तरीकों से डिवाइस के कैमरे तक पहुंच प्रदान करता है।

यहाँ उम्मीद है कि Apple इस WebRTC प्रतिबंध को जल्द से जल्द हटा देगा ...

स्रोत:
उन डेवलपर्स के लिए जो अपने ऐप्स में WebKit का उपयोग करते हैं, RTCPeerConnection और RTCDataChannel किसी भी वेब दृश्य में उपलब्ध हैं, लेकिन कैमरा और माइक्रोफ़ोन तक पहुंच वर्तमान में Safari तक सीमित है।


आप अपडेट सही प्रतीत नहीं होते हैं। IOS 11.3 बीटा में getUserMediaऔर webkitGetUserMediaदोनों का उपयोग करते समय अपरिभाषित हैं<meta name="apple-mobile-web-app-capable" content="yes">
ro-savage

@ ro-savage अंतिम रिलीज़ अब बाहर हो गया है, और हम अभी भी इसे काम नहीं कर सकते हैं
Owen

4
सफारी नया है, कृपया सेब, हमें उपयोगकर्ता मीडिया डेटा का उपयोग करने की अनुमति दें
पाब्लो सीगर्रा

15

खुशखबरी! पहला iOS 11.3 बीटा में होम स्क्रीन वेब ऐप से आखिरकार कैमरा एक्सेस किया जा सकता है।

मैंने कुछ फाइलों के साथ रेपो बनाया है, जो प्रदर्शित करता है कि यह काम करता है:

https://github.com/joachimboggild/uploadtest

परीक्षण के चरण:

  1. अपने फोन से सुलभ वेबसाइट से इन फ़ाइलों की सेवा करें
  2. IOS सफारी में index.html खोलें
  3. होम स्क्रीन में शामिल करें
  4. होम स्क्रीन से ऐप खोलें। अब नेविगेशन यूआई के बिना, वेब पेज पूरी स्क्रीन में खुला है।
  5. कैमरे से एक छवि का चयन करने के लिए फ़ाइल बटन दबाएं।

अब कैमरा सामान्य रूप से काम करना चाहिए और एक काली स्क्रीन नहीं होनी चाहिए। यह दर्शाता है कि कार्यक्षमता फिर से काम करती है।

मुझे यह जोड़ना होगा कि मैं एक सादे क्षेत्र का उपयोग करता हूं, न कि GetUserMedia या somesuch का। मुझे नहीं पता कि वह काम करता है या नहीं।


आपने इसे <मेटा नाम = "ऐप्पल-मोबाइल-वेब-ऐप-सक्षम" सामग्री = "हां"> के साथ चलाने का प्रबंधन कैसे किया?
अलेक्जेंडर

1
मैंने इनपुट टैग के साथ एक सामान्य रूप का उपयोग किया, और यह काम किया।
जोकिम बोल्गिल्ड

@ JoachimBøggild क्या आपको यकीन है कि iOS 11.3+ डिवाइस PWA से कैमरा खोल सकते हैं ?? एक अच्छी खबर देने के लिए धन्यवाद।
जागादेश

हाँ बिलकुल पक्का। मेरे पास यह posmo.com पर चल रहा है। मुझे सेटिंग्स याद नहीं हैं। वे एक प्रकट फ़ाइल हालांकि शामिल हैं।
जोचिम बोल्गिल्ड

1
@ JoachimBøggild आप इसके लिए मेनिफ़ेस्ट / वीडियो टैग साझा कर सकते हैं। मैंने अपने कोड का परीक्षण किया है, और यह केवल सफारी में काम करता है। होम स्क्रीन ऐप में नहीं।
मई


1

यदि आप फ़ाइल इनपुट फ़ील्ड का उपयोग कर रहे हैं तो यह iOS 11.4 में फिर से काम कर रहा है।


1
मेरे पास ios 11.4 है और यह होम स्क्रीन ऐप पर काम नहीं करेगा। आप इसे काम करने के लिए क्या कर रहे हैं?
एरन

मैंने कोई बदलाव नहीं किया। बस नवीनतम संस्करण के लिए अद्यतन और यह फिर से काम करना शुरू कर दिया।
अलंकृत

1
11.4 पर जाँच की गई। सफारी में काम करता है - एक होम स्क्रीन ऐप के रूप में काम नहीं करता है
मई

मैं iPad पर iOS 11.4.1 पर हूं और यह काम कर रहा है। आप किस उपकरण का उपयोग कर रहे हैं?

1
किसी भी कारण से आप फ़ाइल इनपुट का उपयोग नहीं कर सकते हैं? वह फिर से काम कर रहा है।
कलकत्ता

0

हाल ही में मुझे एक ही समस्या का सामना करना पड़ा, जिसका एकमात्र समाधान मैं लेकर आया था कि सामान्य मोड के बजाय ब्राउज़र में ऐप खोलना था। लेकिन केवल iOS पर!

चाल अलग-अलग कॉन्फ़िगरेशन के साथ 2 मैनिफ़ेस्ट.जॉन फ़ाइलों को बनाने के लिए थी।

एंड्रॉइड के लिए सामान्य एक और सब कुछ के लिए एक है Apple, मैनिफ़ेस्ट-आईओएस.जसन, केवल अंतर प्रदर्शन संपत्ति पर होगा।

चरण 1: आईडी को प्रकट लिंक टैग में जोड़ें:

<link id="manifest" rel="manifest" href="manifest.json">

चरण 2: इस स्क्रिप्ट को शरीर के निचले हिस्से में जोड़ा गया:

<script>
    let isIOS = /(ipad|iphone|ipod|mac)/g.test(navigator.userAgent.toLowerCase());
    let manifest = document.getElementById("manifest");
    if (isIOS)
      manifest.href = 'manifest-ios.json'
</script>

चरण 3: में प्रकट-ios.json ब्राउज़र करने के लिए प्रदर्शन सेट

{
    "name": "APP",
    "short_name": "app",
    "theme_color": "#0F0",
    "display": "browser", // <---- use this instead of standard
    ...
}

एक और समस्या सामने आती है जैसे कि ऐप को कई बार मल्टीपल टैब में खोलना, कभी-कभी।

लेकिन आशा है कि यह आप लोगों की मदद करता है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.