我们可以使用Android WebView中的addJavascriptInterface()方法将Java对象暴露给JavaScript,然后在JavaScript中调用该Java对象的方法来获取文件。
步骤如下: 1.在Android应用程序中创建一个Java对象,该对象包含读取外部存储文件的方法。以下是示例代码:
public class ExternalStorageUtil { private Context mContext;
public ExternalStorageUtil(Context context) {
mContext = context;
}
public String readFile(String filePath) {
String result = "";
try {
File file = new File(filePath);
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
result = new String(buffer);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
2.将Java对象暴露给JavaScript。以下是示例代码:
// 创建Java对象 ExternalStorageUtil externalStorageUtil = new ExternalStorageUtil(this);
//将Java对象暴露给JavaScript webView.getSettings().setJavaScriptEnabled(true); webView.addJavascriptInterface(externalStorageUtil, "externalStorageUtil");
3.在JavaScript中调用Java对象的方法。以下是示例代码:
function readFile(filePath) { var result = ""; try { result = externalStorageUtil.readFile(filePath); } catch (e) { console.log(e); } return result; }
4.现在,JavaScript中的readFile()方法将调用Java对象的readFile()方法来读取指定路径的文件。以下是示例代码:
var fileContent = readFile("/sdcard/example.txt"); console.log(fileContent);