如何在Android的WebView中使用Javascript LocalFileSystem访问SDCARD?

3

我希望通过在webview中点击按钮来显示Android中的目录列表。

webView已经成功启动并监听事件,但是我遇到了一个异常:

Uncaught ReferenceError: LocalFileSystem is not defined at file:///android_asset/FirstFile.html:11

以下是完整的代码:

Activity:

public class Home extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    WebView webview = new WebView(this);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.setWebChromeClient(new WebChromeClient());

    webview.loadUrl("file:///android_asset/FirstFile.html");


    setContentView(webview);

}

这里是FirstFile.xml

<!DOCTYPE html>
<html>
<body>
    <script type="text/javascript" charset="utf-8">
        function getFileSystem() {
            window.requestFileSystem = window.requestFileSystem
                    || 

            window.requestFileSystem(LocalFileSystem.PERSISTENT, 1024 * 1024,
                    onFileSystemSuccessUpload, fail);

            window.resolveLocalFileSystemURL("file:///mnt/sdcard",
                    onResolveSuccess, fail);

            document.getElementById("text1").innerHTML = "Hii its done";

        }

        function onResolveSuccess(fileEntry) {
            document.write("URI Resolved");
        }

        function fail() {
            console.log("Error getting system")
        }
function successReader(entries) {
            var i;
            for (i = 0; i < entries.length; i++) {
                alert(entries[i].name);
                if (entries[i].isDirectory == true) {
                    var directoryReaderIn = entries[i].createReader();
                    directoryReaderIn.readEntries(successReader, fail);

                }

            }
        }
    </script>

    <input type="text" id="text1">
    <button onclick="getFileSystem()">Click Me !!</button>
</body>
</html>

请为我提供一个合适的解决方案。
1个回答

0

我已经解决了我的问题。我们需要从libs导入cordova.jar,并将cordova.js包含在我们的HTML页面中。

现在我可以轻松访问我的SD卡的所有目录。


请问您能否对您的解决方案提供更多说明? - Naitik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接