Nex*_*ion 4 javascript android webview
我正在编写一个基本的Web浏览器,该浏览器只能访问某个网站(由另一家公司开发和维护)以进行我的工作,但是为了计算登录次数和在该网站上花费的时间(对于这两个非常重要的事情)我的公司),您需要使用网站上的某个按钮注销。我查看了页面源代码,所有按钮所做的只是调用一个javascript函数(命名为doLogoff()或类似名称),该函数在普通浏览器上仅会关闭您登录后创建的窗口。在我的应用程序中,所有操作均已完成在一个窗口中,没有选项卡(不需要它们),我也不完全确定关闭窗口的调用对我的应用程序有什么作用,但是WebView上的站点只是停留在该页面上,只能返回如果您单击链接,则转到登录页面。
无论如何,有什么方法可以检测何时在WebView中调用某个JavaScript函数?如果我可以绑定该功能并确保实际执行注销操作,那么我可以自己将Webview转到登录页面。
您可以使用JavascriptInterface。以下示例来自文档。反之亦然。您可以在JavaScript中创建一个函数,该函数将在您的活动中触发Java代码。
您可以在Java代码中声明接口。
public class JavaScriptInterface {
Context mContext;
/** Instantiate the interface and set the context */
JavaScriptInterface(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();
}
}
Run Code Online (Sandbox Code Playgroud)
您将接口添加到WebView
WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
Run Code Online (Sandbox Code Playgroud)
在您的网页中,您可以从脚本中调用java方法
<script type="text/javascript">
function showAndroidToast(toast) {
Android.showToast(toast);
}
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3270 次 |
| 最近记录: |