HTML5頁面如何在手機端瀏覽器調用相機、相冊功能


     最近在做一個公司的保險信息處理系統項目,開發微信端瀏覽器訪問的HTML5的頁面,頁面中有一個<input id="input" type="file"/>標簽,iOS直接就支持吊起相機拍照或是相冊選擇,但android中不支持吊起相機拍照,只能吊起相冊選擇,網上的帖子說是因為android屏蔽了文件上傳功能還是怎么的,沒看明白。此篇博文記錄如何解決這一問題,使得android也可以直接吊起相機拍照。

        在查資料的之后,總結了一下用input調用相機和相冊功能的方法,之前沒有深入了解過,現在整理一下:

        不需要特殊環境,使用input標簽 type值為file,可以調用系統默認的照相機、相冊、攝像機、錄音功能。先上代碼:

 

[html]  view plain  copy
 
  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.     <meta charset="UTF-8">  
  5.     <title>HTML5頁面如何在手機端瀏覽器調用相機、相冊功能</title>  
  6. </head>  
  7. <body>  
  8.   
  9. <div>  
  10.     <input type="file" accept="image/*" capture="camera">  
  11.     <input type="file" accept="video/*" capture="camcorder">  
  12.     <input type="file" accept="audio/*" capture="microphone">  
  13. </div>  
  14.   
  15. </body>  
  16. </html>  

 

accept表示打開的系統文件目錄;
capture表示的是系統所捕獲的默認設備,camera:照相機;camcorder:攝像機;microphone:錄音。

        如果不加上capture,則只會顯示相應的,例如上述三種依次是:拍照或圖庫,錄像或圖庫,錄像或拍照或圖庫,加上capture之后不會調用圖庫。

        其中還有一個屬性multiple,支持多選,當支持多選時,multiple優先級高於capture,所以只用寫成:<input type="file" accept="image/*" multiple>就可以,可以在手機上測試一下。

 

判斷ios,如果是ios就去掉capture屬性.

        var file = document.querySelector('input'); if (getIos()) { file.removeAttribute("capture"); } function getIos() { var ua=navigator.userAgent.toLowerCase(); if (ua.match(/iPhone\sOS/i) == "iphone os") { return true; } else { return false; } }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM