可以通过使用WebView的addJavascriptInterface方法来将Java对象注入到Javascript中,使得Javascript能够直接访问该Java对象的方法和属性。代码示例如下:
public class FileAccessor { private Context mContext;
public FileAccessor(Context context) {
mContext = context;
}
@JavascriptInterface
public String readFile(String filePath) {
String fileContent = "";
try {
FileInputStream inputStream = mContext.openFileInput(filePath);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
fileContent += line;
}
} catch (IOException e) {
e.printStackTrace();
}
return fileContent;
}
}
FileAccessor fileAccessor = new FileAccessor(this); webView.addJavascriptInterface(fileAccessor, "fileAccessor");
var fileContent = fileAccessor.readFile("file.txt"); console.log(fileContent);
需要注意的是,为了确保安全性,addJavascriptInterface方法只能在UI线程中调用,并且只能注入标记了@JavascriptInterface注解的方法。