Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从活动类在webview中调用javascript函数_Javascript_Android_Interface_Webview_Onkeydown - Fatal编程技术网

从活动类在webview中调用javascript函数

从活动类在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.

编辑:这个剪报最终奏效了。我以前尝试过这个,但实际上我的javascript遇到了一个范围问题。我在document.onready中定义了appBack()。只需将该函数重新定义为*window.*appBack=function()。做了生意。希望这对别人有帮助

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);
    } 
}