AndroidStudio中WebView如何从Javascript中访问外部项目文件?
创始人
2024-08-21 06:30:25
0

可以通过使用WebView的addJavascriptInterface方法来将Java对象注入到Javascript中,使得Javascript能够直接访问该Java对象的方法和属性。代码示例如下:

  1. 创建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;
}

}

  1. 在WebView中调用addJavascriptInterface方法将该Java对象注入到Javascript中

FileAccessor fileAccessor = new FileAccessor(this); webView.addJavascriptInterface(fileAccessor, "fileAccessor");

  1. 在Javascript中调用该Java对象的方法

var fileContent = fileAccessor.readFile("file.txt"); console.log(fileContent);

需要注意的是,为了确保安全性,addJavascriptInterface方法只能在UI线程中调用,并且只能注入标记了@JavascriptInterface注解的方法。

相关内容

热门资讯

黑科技新版(德扑安装)德州ap... 黑科技新版(德扑安装)德州app切实真的有挂!太无语了从前存在有挂(2026已更新)(哔哩哔哩);德...
黑科技讲解(Wepoke技术)... 【福星临门,好运相随】;黑科技讲解(Wepoke技术)aaPoker原来真的是有挂!太实锤了竟然有挂...
黑科技攻略(wepoke美元局... 黑科技攻略(wepoke美元局)红龙软件德州扑克确实存在有挂!太实锤了一贯有挂(2023已更新)(哔...
黑科技ai(大厅wpk)pok... 黑科技ai(大厅wpk)pokermaster原先有挂!太嚣张了竟然有挂(2020已更新)(哔哩哔哩...
黑科技攻略(德州透视)轰趴大菠... 黑科技攻略(德州透视)轰趴大菠萝真是存在有挂!太实锤了起初真的有挂(2026已更新)(哔哩哔哩);《...
黑科技玄学(WPK内置)aap... 黑科技玄学(WPK内置)aapOKER真是存在有挂!太实锤了固有真的有挂(2026已更新)(哔哩哔哩...
黑科技辅助挂(德州最新)来玩德... 黑科技辅助挂(德州最新)来玩德州扑克约局总是存在有挂!太离谱了都是是有挂(2026已更新)(哔哩哔哩...
黑科技安装(云扑克德州PK)w... 黑科技安装(云扑克德州PK)wPK原来真的是有挂!太坑了从前真的是有挂(2021已更新)(哔哩哔哩)...
黑科技软件(德扑之星规律)智星... 黑科技软件(德扑之星规律)智星德州一向真的是有挂!太实锤了一贯有挂(2021已更新)(哔哩哔哩);一...
黑科技挂(微扑克计算器)菠萝德... 黑科技挂(微扑克计算器)菠萝德州一贯真的是有挂!太无语了一向是有挂(2026已更新)(哔哩哔哩);菠...