簡體   English   中英

cordova 從設備存儲加載圖像文件

[英]cordova load image file from device storage

我有一個圖像標簽,它是對應用程序目錄中圖像文件的 src 引用。 我使用cordova.file.applicationStorageDirectory來獲取應用程序目錄並將其余路徑添加到它(不是:我已經使用java android studio在其中創建了新目錄和圖像)。 所以我的 img src 的完整路徑是file:///data/data/com.test.Dir/myfoolder/myimg.jpg所以為了測試我使用它像<img id="the_img" src="file:///data/data/com.test.Dir/myfoolder/myimg.jpg" width="100" height="150">但 img 標簽是空的,所以這似乎不是一個正確的方法。 如何將應用程序目錄中的圖像加載到圖像標簽。

您可以使用“cdvfile://”協議直接放置圖像。 將其用作:

<img src="cdvfile://localhost/persistent/img/logo.png" />

更多細節在這里: https : //github.com/apache/cordova-plugin-file#cdvfile-protocol

我知道這個問題是針對 Android 上的 Cordova,但供將來參考 - 這在 iOS 上不起作用,因為最新的 WKWebView 有一個 CORS 問題。 您將需要手動讀取文件並注入圖像。 像這樣的東西:

    function loadImageFromFile(filename, index) {
        window.resolveLocalFileSystemURL(filename, function success(fileEntry) {
            fileEntry.file(function (file) {
                var reader = new FileReader();
                reader.onloadend = function() {
                    if (this.result) {
                        var elem = document.getElementById("imageitem");
                        var blob = new Blob([new Uint8Array(this.result)], { type: "image/png" });
                        elem.src = window.URL.createObjectURL(blob);
                    }
                };
                reader.readAsArrayBuffer(file);
            });
        }, function () {
            console.log("File not found: ");
        });
    }
<img id="the_img" src="/storage/emulated/0/Android/data/com.test.Dir/files/myimg.jpg" width="100" height="150">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM