【发布时间】:2015-03-17 07:00:14
【问题描述】:
我有 html 字符串,我正在将其加载到 webview 中。请记住 html 不是文件,它只是一个字符串。
例如,如果我们将我的 html 字符串设为,
String html = "<html>
<head>
<title>business card template-2</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div id="name_text"><font face="verdana" color="#525405">Name</font></div>
<div id="mobile"><font face="verdana" color="#525405">Mobile</font></div>
</body>
</html>"
我正在将这个 html 字符串加载到 webView 中。
我正在使用脚本文件动态替换字体标签下的名称,即在上面的html字符串中,我想用实际名称替换名称的地方,甚至用实际数字代替移动。
所以我已将脚本附加到上面的 html 字符串中,这应该可以完成所有替换工作。
例如,我连接到 html 字符串的脚本是,
<script type='text/javascript'>var name_text='Rupesh';" var tel_no='XXX-XXX-XX'; </script>
<script type='text/javascript' src='file:///android_asset/js_files/jquery.js'></script>
<script type='text/javascript' src='file:///android_asset/js_files/template.js'></script>
我保存在 assets->js_files 文件夹下的 template.js 和 jquery.js 文件因此尝试通过提供路径 file:///android_asset/js_files/template.js 来访问
在 template.js 中我正在做那个替换。
当我通过提供这两个 .js 文件的路径在 pc 浏览器中执行此操作时,这可以正常工作。但在安卓手机中我无法加载它。是否有任何替代方法可以进行此替换。
我以编程方式将连接的字符串加载到webview
也就是说,
String html_script = html+script;
webViewCard.getSettings().setJavaScriptEnabled(true);
webViewCard.loadData(html_script,"text/html", "UTF-8");
谁能帮帮我。
更新:
我已经找到了解决方案,但由于一些限制,我对此并不十分满意。下面是解决方案,
我添加了以下代码行
WebSettings settings = webViewCard.getSettings();
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){
settings.setAllowUniversalAccessFromFileURLs(true);
settings.setAllowFileAccessFromFileURLs(true);
}
但问题是我必须将我的应用程序限制为仅适用于 4.2 及更高版本的用户。 有什么我可以做的吗?
【问题讨论】:
-
你有没有 webview.getSettings().setJavaScriptEnabled(true);在你的代码中?
-
是的,你可以在上面看到它。我刚刚编辑了问题。
标签: javascript android jquery webview android-webview