@xiaoyixy
2015-11-09T20:11:30.000000Z
字数 996
阅读 1494
Hybrid
Ⅰ 用 WebSettings 配置 WebView 设置
Android 的 WebView 提供了一个很好理解的配置接口——WebSettings, 他可以用于在运行时定义 WebView 的行为。然而, WebSettings 对象只有在一个 WebView 的生命周期中才有效。换句话说,在 WebView 被销毁之后,当你想试着调用来自 WebView.getSettings() 对象的任何方法时,将会抛出 IllegalStateException 的异常提示。
可以通过 WebView.getSettings() API 来恢复 WebSettings 方法:
WebView WebView = new WebView(this);
WebSettings settings = WebView.getSettings();
Ⅱ 防止本地文件被 WebView 加载
setAllowFileAccess() API 让开发者可控制 WebVIew 访问本地文件的权限,它是几个能在运行期间配置的 WebView 设置之一。默认情况下这个设置的值为 true ,考虑到安全性因素,如果 app 中不需访问到文件系统,最好是将其关闭:
settings.setAllowFileAccess(false);
Ⅲ 允许加载 JavaScript
考虑安全性因素,在默认情况下, JavaScript 在 WebView 中是禁用的。可通过 setJavaScriptEnabled() 方法来启用或禁用 JavaScript:
settings.setJavaScriptEnabled(true);
注意:
建议在混合应用的 assets 文件夹放置需要的所有 JavaScript 库。如果在应用中使用第三方的 JavaScript 库,最终的结果将是会有大量 bugs 和安全性隐患。
启用一些无用的 WeView 设置可能产生一些无法预料的 WebView 行为,因此默认禁用这些设置是一个好习惯。
例如,如果无需使用 Flash 插件,使用setPluginState(PluginState.OFF) 方法将其禁用可以防止黑客通过第三方插件对应用进行攻击:
WebView WebView = new WebView(this);
WebSettings settings = WebView.getSettings();
settings.setPluginState(PluginState.OFF);