Htmlファイル入力を使用してカメラを開き、PWAの写真を撮っています。
<input type="file" accept="image/*" capture="camera" name="photo" id="photo-input-js" data-project-id="<?php echo $projectId ?>">
// this element triggers the input
<li class="menu-item <?php echo $current_page == 'camera' ? 'is-active' : '' ?>" id="camera-tab">
<a href="<?php echo site_url("photos/openCamera/". $projectId) ?>" id="open-camera-js">
<div class="icon icon-camera"></div>
<span class="d-none d-md-block ">Camera</span>
</a>
</li>
JavaScript:
// open camera
$(document).on('click', '#open-camera-js', function(e) {
e.preventDefault();
$(".menu-item").removeClass('is-active');
$("#camera-tab").addClass('is-active');
// check support for geolocation/ask for permissions
if (!navigator.geolocation) {
throw new Error('Unsupproted device');
}
// open the file input
$("#photo-input-js").click();
});
// save image
$(document).on('change', '#photo-input-js', function(e) {
e.preventDefault();
let photo = $(this).prop('files')[0] ? $(this).prop('files')[0] : false;
if (photo) {
// handle captured photo
}
PWAをホーム画面にダウンロードした後、アプリを終了して、開いているアプリからアプリをスワイプしないで戻るまで、カメラは完全に機能します。
ホームボタンを押してアプリを終了してから戻ってくると、次のようなカメラ映像ではなく黒い画面が表示されます。
その後、アプリを終了し、開いているアプリからPWAをスワイプして、もう一度アプリを開いて、カメラを正常に機能させる必要があります。
カメラはAndroid my pwaのバージョンで正常に動作します
これは、iOS 13.2および13.3のバグが原因でした。
IOS 13.4以降では解決されています。私は13.3でこの問題を再現できることを個人的に確認できますが、13.5.1に更新した後は確認できません
最近同じ問題に直面しましたが、私が思いついた唯一の解決策は、標準モードではなくブラウザーでアプリを開くことでした。ただし、iOSのみ。
トリックは、異なる構成で2つのmanifest.jsonファイルを作成することでした。通常のものとすべてのものはApple manifest-ios.jsonです。
ステップ1:マニフェストリンクタグにIDを追加します。
<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:manifest-ios.jsonで表示をブラウザに設定
{
"name": "APP",
"short_name": "app",
"theme_color": "#0F0",
"display": "browser", // <----
...
}
皆さんのお役に立てば幸いです。
このメタタグをindex.htmlに追加して、解決しました!
デバイス:iPhone 7およびiPhone X、iOS 13.3.1
<meta name="Apple-mobile-web-app-capable" content="yes">