input-file 部分手機不能拍照問題

來源:互聯網
上載者:User

標籤:proc   ade   use   hub   image   github   app   ...   man   

曾經遇到一個需求,使用者拍身份證上傳驗證,

然後我卡在了拍照這個點上。

 

最初採用的是的 api,wx.chooseImage,

但隨後發現,返回的是一種只有才能預覽的 url 格式,

但驗證是要放在 PC 上進行的,等於儲存了這個 url 也沒法看呀。

然後詳細看了遍文檔,看上去好像是說可以先上傳到然後就可以下載到本地了,

於是又帶著吐槽啟用了另兩個 api,wx.uploadImage 和 wx.dowmloadImage。

萬萬沒想到,結局是,chooseImage 獲得 localIds 然後 uploadImage 得到 serverId,再 downloadImage 又變成了 localId。

思索了一下,也許這不是瀏覽器許可權的問題,因此找上後端一起討論這個問題。

才知,downloadImage 得後台人員去下,具體原因他也沒說明白...

好吧,稀裡糊塗算是走通了拍照和上傳驗證這個流程。

 

然而,正在我準備高興一下的時刻,對桌的同事跟我說,

剛才試了下,好像 input[type="file"] 好像在手機上相片選擇室會多一個拍照的按鈕。

然後我試了一下,天了嚕,心中有句 NMP 不知當講不當講,上面走 api 這條路又坑又麻煩好伐。

 

然而,正在我準備高興一下的時刻,又一個同事跟我說,

剛才試了下,好像My Phone不行耶,

然後集中試了一圈,確實有部分手機只有選取圖片沒有拍照這個選項,比如小米3/華為mate7等。

拔涼拔涼的,web 標準是多麼重要呀...

 

所以該項目只得還是選用了 api 這種方法,

小小慶幸一下客戶群還好都是基於平台,不然還得改成 webapp 了。

 

而隨著時間流逝,

最近在 github 上尋找蘋果機相容 getUserMedia 開啟手機網路攝影機(用於做個假 AR)的辦法。

一直無果所以向大佬彙報了一下,誰知之後他給我找來了一個 camera api。

試了一下,其實是個開啟拍照功能,但這樣跳出了瀏覽器,沒法加東西弄成 AR 呀。

但猛然想到,說不定能解決上次那個部分手機沒法拍照的問題,就去看了下源碼。

 

不禁百臉懵逼,一切的一切只因為 accept="image/*" 這個屬性!

<input type="file">      <!-- 部分手機沒有拍照選項 --><input type="file" accept="image/*">   <!-- 有了 -->

一時瞬間蒼老,不禁莞爾,感覺歲月弄人,可能這就是程式員的一生吧。

 

然而!這個故事還沒有完!!!

accept="image/*" 沒法使用 fileReader,

只能用 window.URL 的 createObjectURL,

也就意味著,它返回的是個 blob 類型的 url,沒法在其他頁面預覽了啊喂。

最後的最後,竟然還只能走 api 這條路了嗎,好不甘心呀,有待繼續尋找....

 

input 的案例

https://foreverz133.github.io/demos/single/input-file.html

的案例(當然你也只能在看到效果,代碼在 common.js 裡面)

http://goldcard.kdcer.com/User/BindingProcessStep2

 

好了,走了很多彎路,與大家同勉進步,麼麼噠

input-file 部分手機不能拍照問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.