2013-01-06 21 views
0

我正在開發一個firefox極光(android)的webapp。我有一個文件輸入。 但是,當用戶點擊輸入時,他們不能從SD卡或文件系統中選擇只有圖片,音樂或視頻的文件。Firefox的webapp文件輸入

我搜索MOZILLA DEVELOPER NETWORK,但找不到任何有用的信息。

在我manifest.webbapp我有設備的存儲權限:

"permissions": { 
    "device-storage:sdcard":{ "access": "readonly" } 
    }, 

enter image description here

回答

1

我假設你正在使用簡單的標記?

設備存儲:sdcard確實用於非常不同的一組用例。而且我們還沒有在Firefox上實現的Android版本。

顯示的應用程序列表只是我們從Android Intents系統獲得的一組應用程序。我會想象,如果用戶安裝了某種文件瀏覽器應用程序,它可能會響應該意圖,它會彈出那裏。

但當然這不是你可以在你的應用程序中依賴的東西。

我真的有點驚訝,有沒有默認的應用程序在Android上提供該功能,但我想是這樣。或者是否有人知道一種方法來獲得我們可以連接到的filepicker意圖?

中期你可以使用DeviceStorage API。這將給你直接的JS訪問SD卡,這將允許你建立自己的用戶界面從SD卡中選擇一個文件。但是這種額外的能力帶來了不少缺點。這是一個特權API,意味着您必須將應用程序編寫爲打包的應用程序,並且必須使用CSP。而且你必須經歷Firefox市場審查過程(所有特權應用程序必須通過代碼審查)。

所以這是一個相當遙遠的第二選擇。

除此之外,沒有任何解決方案。當然,最好的方式是如果有一種方式我們可以搭載Android文件選取器,但我不確定這是否可行。它絕對沒有實現。

+0

我可以在firefox中使用DeviceStorage API for Android而無需用戶打開它?如果是的話,我想這是一個好主意建立我自己的filepicker,會很多工作,但他們我可以分發給其他人。 –

+0

一旦實現,默認情況下會啓用yes。用戶不必「打開它」,但用戶將不得不使用它來批准您的應用程序。 –

+0

很高興知道,根據https://wiki.mozilla.org/WebAPI,設備存儲API是「實現的,但需要明確地打開此平臺上的偏好」。我該怎麼做才能開始開發? –

0

只能通過特權或認證應用程序才能訪問SD卡。目前據我所知,系統菜單沒有整合,因爲你希望是這種情況。就我個人而言,我希望這會改變。

API文檔:https://developer.mozilla.org/en-US/docs/WebAPI/Device_Storage

你可以創建自己的菜單模仿系統中的一個;通過這種方式,用戶獲得了無縫的體驗,他們不知道其中的差別。這將需要一點樣板,雖然它不是不可逾越的樣板。

快速片斷瀏覽/枚舉所有的照片的SD卡:

var storage = navigator.getDeviceStorage("sdcard"); 

sdcard.browse = function() { 
    var pics = navigator.getDeviceStorage('pictures'); 

    // Let's browse all the images available 
    var cursor = pics.enumerate(); 

    cursor.onsuccess = function() { 
    var file = this.result; 
    alert("File found: " + file.name); 

    // Once we found a file we check if there are other results 
    if (!this.done) { 
     // Then we move to the next result, which call the cursor 
     // success with the next file as result. 
     this.continue(); 
    } 
    } 

    cursor.onerror = function() { 
    alert("No files found: " + this.error); 
    } 
}; 

如果你想閱讀一些更多的細節,寫作和caulating可用的存儲,我目前工作的一個小我可以利用業餘時間的封裝庫更輕鬆地使用SDCard(並處理一些回調以更好地與其他代碼集成),並且可以幫助您解決問題。

相關問題