以下の詳細では、WebRTCまたはファイル入力を使用してiOS11(パブリックリリース)ホームスクリーンWebアプリからカメラにアクセスすることはできません。ユーザーはどうやってカメラにアクセスし続けることができますか?
私たちはhttps経由でWebアプリページを提供しています。
ここの人々が言ったようにAppleの文書はウェブアプリのカメラ機能がサービスワーカーと一緒に11.3に戻ってきていると助言します。これは良いことですが、11.3GMで徹底的にテストできるようになるまで、みんなに再インストールしてもいいかどうかはまだわかりません。
iOS 11.2とiOS 11.1.2は修正されていません。
Webアプリの既存の顧客に問い合わせることができるようです
私たちの現在のプロダクションコードは、iOS 10以上で長年うまく機能してきたファイル入力を使用します。 iOS 11では、Safariタブとして機能しますが、ホームスクリーンアプリからは機能しません。後者の場合、カメラは開かれ、黒い画面しか表示されないので使用できません。
<meta name="Apple-mobile-web-app-capable" content="yes">
...
<input type="file" accept="image/*">
IOS11上のSafari 11は素晴らしい WebRTCメディアキャプチャ を提供します。
デスクトップとモバイルの通常のWebページで、 ここにリンクされているサンプルコード を使用して、カメラ画像をキャンバスにキャプチャできます。
ページを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;
私達は全く同じような問題を抱えています。これまでのところ、私たちができる唯一の回避策は、それが "Apple-mobile-web-app-enabled"になるようにメタタグを削除し、ユーザーがSafariで開くことができるようにすることです。
更新:以前に公開されたいくつかの変更履歴と投稿により、manifest.json
の代わりにApple-mobile-web-app-capable
を使用するWebアプリがついに適切なWebRTC実装にアクセスできるようになりました。他の人がここで指摘し、テストが確認したように。悲しい顔。これによって引き起こされた不便のためにすみません、そしてはるか遠く離れた銀河でのある幸運な日がついに私たちに(非Safariの)WebKitによって供給されるビューでカメラアクセスを与えることを願いましょう...
はい、他の人が言ったように、getUserMediaはSafariで直接利用できるだけでUIWebViewでもWKWebViewでも利用できないので、残念ながらあなたの唯一の選択肢は
<meta name="Apple-mobile-web-app-capable" content="yes">
を削除します。AppleがこのWebRTC制限をやや早く解除することを願っています...
良い知らせです。カメラはようやく最初のiOS 11.3ベータ版のホームスクリーンウェブアプリからアクセス可能になるようだ。
いくつかのファイルでリポジトリを作成しました。
https://github.com/joachimboggild/uploadtest
テストする手順
これでカメラは正常に動作し、黒い画面にはなりません。これは、機能が再び機能することを示しています。
私は、getUserMediaやsomesuchではなく、単純なフィールドを使用していることを付け加えなければなりません。それがうまくいくかどうか私は知りません。
どうやら "IOS 13 Beta 1"で解決されています。 https://Twitter.com/ChromiumDev/status/1136541745158791168?s=09
ファイル入力フィールドを使用している場合、これはiOS 11.4でも機能しているようです。