gpt4 book ai didi

Android:如何将本地javascript文件加载到WebView

转载 作者:行者123 更新时间:2023-12-05 00:07:09 25 4
gpt4 key购买 nike

我正在尝试编写一个程序来执行简单的toast。当我尝试在 HTML 中添加脚本时,它起作用了并且能够看到 toast。但是,当我将相同的 script 代码放在 assert 文件夹 (script.js) 下的单独文件中时,它无法注入(inject) javascript

我支持 API 15 及更高版本。

这是代码,我试图在其中注入(inject)脚本

    myWebView = (WebView) findViewById(R.id.webviewid);

myWebView.loadDataWithBaseURL("file:///android_asset/",
"<html>" +
"<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">" +
"<style type=\"text/css\">\n" +
"@font-face {\n" +
" font-family: MyFont;\n" +
" src: url(\"file:///android_asset/fonts/myfont.ttf\")\n" +
"}\n" +
"body {\n" +
" font-family: MyFont;\n" +
" font-size: medium;\n" +
" text-align: justify;\n" +
"}\n" +
"</style>" +
"</head>" +
"<body>" +
"<input type=\"button\" value=\"Say hello\" onClick=\"showAndroidToast('Hello Android!')\" />" +
"<script type=\"text/javascript\" src=\"file:///android_asset/www/js/script.js\"/>" +
"</body>" +
"</html>", "text/html", "UTF-8", null);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
myWebView.setWebViewClient(new MyWebViewClient());

这是我的 javascript 代码。 (脚本.js)

    function showAndroidToast(toast) {
Android.showToast(toast);
};

这是我的 Javascript 界面:

    protected class WebAppInterface {
Context mContext;

/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
mContext = c;
}

/** Show a toast from the web page */
@JavascriptInterface
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
}

如何注入(inject) javascript 文件?感谢您的帮助。

我的项目结构是这样的:

    ---
|
---- App
|
-----src
|
-----main
|
------asserts
| |
| ------fonts
| |
| ------www
| | |
| | ------js
| | |
| | ------script.js
|
------java
|
------res

猫日志显示:

 E/Web Console﹕ Uncaught ReferenceError: showAndroidToast is not defined:13

最佳答案

既然您使用 WebView 来显示数据,您可以将其上传到服务器甚至 Dropbox,然后通过 url 导入连接它?

关于Android:如何将本地javascript文件加载到WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26018414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com