3.1 问题
应用程序需要访问WebView中当前显示内容的HTML源代码,读取或修改其中的某个值。
3.2 解决方案
(API Level 1)
创建一个JavaScript接口,作为WebView和应用程序代码间的桥梁。
3.3 实现机制
WebView.addJavascriptInterface()会为JavaScript绑定一个Java对象,这样就可以在WebView中调用此Java对象的方法。借助这个接口,就可以使用JavaScript在应用程序代码和WebView的HTML间编组数据了。
警告:
允许Javascript控制应用程序会存在安全威胁——允许远程执行应用程序的代码。请在确实需要使用时再使用本接口。
让我们来实际看一个示例。以下代码清单展示了WebView从本地assets目录中加载一个简单的HTML表单。以下代码清单则是一个使用了两个Javascript函数的Activity,这两个函数用来在Activity首选项与WebView的内容间交换数据。
assets/form.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<form name="input" action="form.html" method="get">
Enter Email: <input type="text" id="emailAddress