モバイル用の(ネイティブアプリではなく)Webアプリで、写真を撮ってアップロードしたいのですが、Adobe Flashを使用したくありません。これを行う方法はありますか?
モバイル用の(ネイティブアプリではなく)Webアプリで、写真を撮ってアップロードしたいのですが、Adobe Flashを使用したくありません。これを行う方法はありますか?
回答:
iPhone iOS6以降およびAndroid ICS以降では、HTML5には次のタグがあり、デバイスから写真を撮ることができます。
<input type="file" accept="image/*" capture="camera">
Capture
カメラ、カムコーダー、オーディオなどの値を取ることができます。
このタグは間違いなくiOS5では機能しないと思います。
<input type="file" accept="image/*;capture=camera">
代わりになるべきだと思います。MDNによるとcapture
、input
要素には属性がありません。
capture="camera"
(文字列)と古いがaccept="image/*;capture=camera"
、2012年に置き換えられているcapture="capture"
(ブール値)。この属性は、ライブラリから選択するのではなく、強制的にキャプチャするために使用されます。HTML Media Capture の仕様と正しい構文を
今日では、少なくともandroidを使用すると、比較的簡単です。通常のファイル入力タグを使用するだけで、ユーザーがこのタグをクリックすると、カメラ(またはファイルマネージャーなど)を使用してファイルをアップロードするかどうかを尋ねられます。カメラで写真を撮るだけで、自動的に追加およびアップロードされます。
iphoneについてわからない。たぶん誰かがそれを啓発できるでしょう。編集:Iphoneも同様に機能します。
入力タグのサンプル:
<input type="file" accept="image/*" capture="camera">
multiple
AndroidとiOSの両方で機能します
これを更新するだけで、標準は次のようになります。
<input type="file" name="image" accept="image/*" capture="environment">
環境に面した(背面)カメラにアクセスする
<input type="file" name="image" accept="image/*" capture="user">
ユーザー向け(フロント)カメラ用。ビデオにアクセスするには、名前の「画像」を「ビデオ」に置き換えます。
iOS 10.3.3、ファームウェア760を実行するiPhone 5cでテストされ、正常に動作します。
iOS 6以降およびAndroid 2.2以降のSafariとChromeは、デバイスのカメラで写真を撮ったり、既存のカメラを選択したりできるHTML Media Captureをサポートしています。
<input type="file" accept="image/*">
iOS 10での動作は次のとおりです。
Android3.0以降およびiOS10.3以降のSafariもcapture
、カメラに直接ジャンプするために使用される属性をサポートしています。
<input type="file" accept="image/*" capture>
capture="camera"
(文字列)とaccept="image/*;capture=camera"
(パラメータ)は古い仕様の一部であり、capture
(ブール)W3C候補の勧告に置き換えられました。
サポートドキュメント:この2013 O'Reillyの本と私のテスト
capture
代わりにで試してくださいcapture="camera"
。どのデバイスとAndroidのバージョンに興味があります。
WEBRTCを使用できますが、残念ながらすべてのWebブラウザーでサポートされているわけではありません。以下は、ブラウザがサポートするブラウザを表示するリンクです http://caniuse.com/stream
そしてこのリンクはあなたがそれにアクセスする方法のアイデアを与えます(サンプルコード)。 http://www.html5rocks.com/en/tutorials/getusermedia/intro/
getUserMedia
過ぎ<input type="file" accept="image/*">
です。トリックを実行します。
AppMobi HTML5 SDKは、HTML5ベースのアプリからカメラを含むネイティブデバイス機能へのアクセスを約束していましたが、Googleが所有することはなくなりました。代わりに、この投稿でHTML5ベースの回答を試してください。
あなたは、使用したいと思うgetUserMediaをカメラにアクセスします。
このチュートリアルでは、ブラウザーからデバイスのカメラにアクセスするための基本について概説します。https://medium.com/@aBenjamin765/make-a-camera-web-app-tutorial-part-1-ec284af8dddf
注:これはほとんどのAndroidデバイスで機能し、iOSではSafariでのみ機能します。
セキュリティ機能が実装されているため、アプリをローカルホストでローカルに実行するか、SSLを介してGetUserMedia()を実行する必要があることに注意してください。
利用可能ないくつかのデモを試してみてこれを発見し、それらが機能しないときに失望しました!参照:新しいセキュリティ制限
できないと思います-W3CドラフトAPIがありますオーディオまたはビデオを取得するためのがありますが、主要なモバイルOSのいずれにもまだ実装はありません。
次善の策唯一の選択肢は、PhoneGapを使用するというデニスの提案に従うことです。つまり、ネイティブアプリを作成してモバイルアプリストア/マーケットプレイスに追加する必要があります。
追加のメカニズムなしに、Webブラウザーから携帯電話のカメラにアクセスする方法(つまり、ハードウェアAPIへのアクセスを許可するFlashまたは何らかのタイプのコンテナー)を知りません
後者については、PhoneGapを参照してください。http://docs.phonegap.com/phonegap_camera_camera.md.html
これにより、少なくともiOSおよびAndroidベースのデバイスでカメラにアクセスできるようになります。