我正在尝试将一个html页面作为WebView启动,并附带一些附加的Javascript。我希望脚本在提交html表单时执行。
相关代码如下。我将html数据存储为字符串,以便将其传递给loadDataWithBaseUrl。我给出的baseurl是资产文件夹,由Android Studio(app - > assets)创建。 javascript.js是该目录的直接子项。
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webview = new WebView(this);
webview.getSettings().setJavaScriptEnabled(true);
String htmlString =
"<html>\n" +
"<head>\n" +
" <script src=\"file:///android_asset/javascript.js/\" " +
"type=\"text/javascript\"></script>\n" +
"</head>\n" +
"\n" +
"<body>\n" +
"<form id=\"form\" onsubmit=\"tokenize(form)\">\n" +
" <div>\n" +
" <label>First Name</label>\n" +
" <input type=\"text\" first-
name=\"first_name\">\n" +
....
....
"\n" +
" <div id=\"tokenize\">\n" +
" <button type=\"submit\">Tokenize!</button>\n" +
" </div>\n" +
"</form>\n" +
"<script>\n" +
"function tokenize(form_id) {\n" +
....
" }</script>\n" +
"</body>\n" +
"</html>\n";
webview.loadDataWithBaseURL("file:///android_asset/",
htmlString,
"text/html", "UTF-8", null);
setContentView(webview);
我希望&#34;脚本src = ...&#34;在我的html中加载javascript文件,以便我可以访问它的功能。
然而,当我在Android模拟器中运行该程序时,logcat会出现错误&#34;无法打开资产URL:file:///android_asset/javascript.js/"。当然,尝试提交html表单会导致应用程序崩溃。
我在这里做错了什么?我无法弄清楚为什么它无法加载javascript文件。我已经谷歌搜索和刮刮堆栈流几个小时,我看到一些类似的问题,但没有解决方案似乎适用于这里。非常感谢任何帮助。