2 回答

TA貢獻1817條經驗 獲得超6個贊
這是實際答案。只需將其發布在這里供下一個用戶使用:
實際上,當前的實現似乎根本不依賴于capture屬性,而僅依賴于type和accept屬性:瀏覽器顯示一個對話框,用戶可以在其中選擇文件的獲取位置,以及該capture屬性不考慮在內。例如,iOS Safari依賴于圖像和視頻(非音頻)的accept屬性(非捕獲)。即使您不使用該accept屬性,瀏覽器也會讓您在“拍攝照片或視頻”和“選擇現有”之間進行選擇(感謝@firt指出這一點)。

TA貢獻1865條經驗 獲得超7個贊
“正確”的代碼和您應該使用的代碼是第五個代碼:
<input type="file" accept="image/*">
這就是為什么它在大多數設備上都能正常工作的原因。上面的代碼正確,完整,足以告訴iOS和Android:
您要捕獲圖像(accept="video/*"用于視頻和 accept="audio/*"音頻,請完全跳過以允許任何操作)。
用戶應該能夠選擇現有的一個或當場捕獲它
我是否可以信任瀏覽器,它將始終添加攝像頭以上傳沒有捕獲屬性的對話框?
是。
該capture屬性不是用來在對話框中包括camera選項的(<input type="file">足夠了),而是指示首選從網絡攝像頭直接捕獲。根據W3C建議規范:
capture屬性是一個布爾屬性,如果指定,則指示直接從設備捕獲媒體是首選。
capture受Android 3.0+支持,如果capture代碼中存在,它將直接帶您進入相機應用。
iOS6-10中不提供支持,該支持將始終為您提供至少兩個選項:“拍照” +“照片庫”。
該capture屬性在規范中得到了發展(這就是為什么您在整個StackOverflow中都會看到多個版本的原因):
2010年7月: accept="image/*;capture=camera"
2011年4月:(capture="camera"字符串)
2012年12月:(capture布爾值,W3C候選推薦標準,)
PS:我已經對HTML Media Capture進行了大量研究,請參見HTML9 Media Capture的正確語法和iOS9中Media Capture 的新提示。這是我的測試平臺,具有20多種代碼組合。
- 2 回答
- 0 關注
- 704 瀏覽
相關問題推薦
添加回答
舉報