从活动类在webview中调用javascript函数
编辑:这个剪报最终奏效了。我以前尝试过这个,但实际上我的javascript遇到了一个范围问题。我在document.onready中定义了appBack()。只需将该函数重新定义为*window.*appBack=function()。做了生意。希望这对别人有帮助从活动类在webview中调用javascript函数,javascript,android,interface,webview,onkeydown,Javascript,Android,Interface,Webview,Onkeydown,编辑:这个剪报最终奏效了。我以前尝试过这个,但实际上我的javascript遇到了一个范围问题。我在document.onready中定义了appBack()。只需将该函数重新定义为*window.*appBack=function()。做了生意。希望这对别人有帮助 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { WebView.
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
WebView.loadUrl("javascript:appBack()");
return true;
}
return super.onKeyDown(keyCode, event);
}
在webview应用程序中,后台导航由一个自定义的JS函数appBack()处理。我一直在试图找到一种方法来截取android物理后台按钮并调用该javascript函数。这是我的活动文件。它非常基本,设置一个webview并监听后退按钮的点击。当前,当用户单击此物理后退按钮时,它将运行mWebView.goBack()。我想在这里执行javascript:appBack()
问题解决请参见编辑:哇!谢谢,这是working@wade蒙太古,你能把你的答案贴出来吗?这样问题就不会显得没有答案了。
package com.stgeorgeplc.app;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
public class StGeorgePLCliteActivity extends Activity {
/** Called when the activity is first created. */
WebView mWebView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.loadUrl("file:///android_asset/www/index.html");
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}