programing tip

iOS11 홈 화면 웹 앱에서 카메라에 액세스하는 방법은 무엇입니까?

itbloger 2020. 7. 24. 07:52
반응형

iOS11 홈 화면 웹 앱에서 카메라에 액세스하는 방법은 무엇입니까?


요약

WebRTC 또는 파일 입력을 사용하여 iOS11 (공개 릴리스) 홈 화면 웹 앱에서 카메라에 액세스 할 수 없습니다 (아래 세부 정보 참조). 사용자가 어떻게 카메라에 계속 액세스 할 수 있습니까?

우리는 https를 통해 웹 앱 페이지를 제공하고 있습니다.

4 월 업데이트

iOS 11.3의 공개 릴리스에서 문제가 해결 된 것으로 보이며 파일 입력 카메라 액세스가 다시 작동합니다!

3 월 업데이트

여기 사람들이 말한 것처럼 Apple 문서는 11.3에서 서비스 작업자와 함께 웹 앱 카메라 기능이 다시 작동한다고 조언합니다. 이것은 좋지만 11.3GM을 철저히 테스트 할 수있을 때까지 모든 사람이 다시 설치하기를 원하는지 아직 확실하지 않습니다.

솔루션, 11 월

우리는 애플이이 문제를 해결하고 싶다는 희망을 잃어 버렸다. iOS "홈 화면에 추가"기능을 제거하도록 웹 앱을 수정하고 영향을받는 사용자에게 이전 홈 화면 아이콘을 제거하도록 요청했습니다.

12 월 6 일 업데이트

iOS 11.2 및 iOS 11.1.2는 수정되지 않습니다.

해결 방법, 9 월 21 일

웹앱의 기존 고객에게 요청할 수있는 것 같습니다

  • iOS11로 업그레이드하지 마십시오-행운을 빕니다 :)
  • iOS 카메라에서 사진을 찍은 다음 웹 앱에서 다시 선택하십시오.
  • 다음 iOS 베타를 기다립니다
  • ATHS 로직을 제거한 후 Safari 브라우저 내 페이지로 다시 설치
  • 안드로이드로 전환

파일 입력

현재 프로덕션 코드는 파일 입력을 사용하여 iOS 10 이상에서 수년간 잘 작동했습니다. iOS11에서는 Safari 탭으로 작동하지만 홈 화면 앱에서는 작동하지 않습니다. 후자의 경우 카메라가 열리고 검은 색 화면 만 표시되므로 사용할 수 없습니다.

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

WebRTC

iOS11의 Safari 11 은 훌륭한 WebRTC 미디어 캡처제공합니다 .

여기에 링크 된 샘플 코드 마다 navigator.mediaDevices.getUserMedia를 사용하여 데스크탑 및 모바일의 일반 웹 페이지에서 카메라 이미지를 캔버스로 캡처 할 수 있습니다 .

우리가 아이 패드 또는 아이폰 홈 화면에 페이지를 추가하면 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;

비슷한 문제가 있습니다. 지금까지 우리가 할 수있는 유일한 해결 방법은 메타 태그를 제거하여 "apple-mobile-web-app-appable"이되도록 메타 태그를 제거하고 사용자가 Safari에서 메타 태그를 열어 모든 것이 정상적으로 작동하는 것처럼 보이게하는 것입니다.


업데이트 : 이전에 게시 된 일부 변경 로그 및 게시를 통해 manifest.json대신 대신 Web Apps를 사용하여 apple-mobile-web-app-capable적절한 WebRTC 구현에 액세스 할 수 있다고 믿었지만 불행히도 다른 사람들이 지적하고 테스트 한 것처럼 사실이 아닙니다. 슬픈 얼굴. 이로 인해 불편을 끼쳐 드려 죄송합니다. 멀리 떨어진 은하계에서 운이 좋은 하루는 Apple이 (사파리가 아닌) WebKit이 제공하는 뷰에서 마침내 카메라 액세스를 제공 할 수 있기를 바랍니다.

예, 다른 사람들이 언급했듯이 getUserMedia는 Safari에서만 직접 사용할 수 있지만 UIWebView 또는 WKWebView에서는 사용할 수 없으므로 불행히도 유일한 선택은

  • <meta name="apple-mobile-web-app-capable" content="yes">getuserMedia에 액세스 할 수있는 일반 Safari 탭에서 '앱'이 실행되도록 제거
  • Apache Cordova와 같은 프레임 워크를 사용하여 다른 방법으로 장치의 카메라에 액세스 할 수 있습니다.

Apple이 WebRTC 제한을 나중에보다 빨리 제거하기를 희망합니다.

출처 :
앱에서 WebKit을 사용하는 개발자의 경우 RTCPeerConnection 및 RTCDataChannel을 모든 웹보기에서 사용할 수 있지만 카메라 및 마이크에 대한 액세스는 현재 Safari로 제한됩니다.


좋은 소식! 카메라는 마침내 첫 번째 iOS 11.3 베타의 홈 화면 웹 앱에서 액세스 할 수있는 것으로 보입니다.

몇 가지 파일로 리포지토리를 만들었습니다.

https://github.com/joachimboggild/uploadtest

테스트 단계 :

  1. 휴대 전화에서 액세스 할 수있는 웹 사이트에서 이러한 파일을 제공하십시오.
  2. iOS Safari에서 index.html을여십시오
  3. 홈 화면에 추가
  4. 홈 화면에서 앱을 엽니 다. 이제 탐색 UI없이 웹 페이지가 전체 화면으로 열립니다.
  5. Press the file button to select an image from camera.

Now the camera should work normally and not be a black screen. This demonstrates that the functionality works again.

I must add that I use a plain field, not getUserMedia or somesuch. I do not know if that works.


Apparently is solved in "ios 13 beta 1": https://twitter.com/ChromiumDev/status/1136541745158791168?s=09


This seems to be working again in iOS 11.4 if you are using a file input field.

참고URL : https://stackoverflow.com/questions/46228218/how-to-access-camera-on-ios11-home-screen-web-app

반응형