从Java到Webview Javascript的Android回调函数

从Java到Webview Javascript的Android回调函数,javascript,java,android,webview,Javascript,Java,Android,Webview,我试图实现一个简单的回调函数,从Java调用函数到WebView。我成功地将该函数从Javascript调用到Java,但另一方面却没有成功 这是我的MainActivity.java public class MainActivity extends AppCompatActivity { WebView view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(saved

我试图实现一个简单的回调函数,从Java调用函数到WebView。我成功地将该函数从Javascript调用到Java,但另一方面却没有成功

这是我的MainActivity.java

public class MainActivity extends AppCompatActivity {

WebView view;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    view= new WebView(this);
    setContentView(view);

    view.loadUrl("file:///android_res/raw/meter.html");
    view.getSettings().setJavaScriptEnabled(true);
    view.addJavascriptInterface(new WebAppInterface(this), "Android");

}

public class WebAppInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    WebAppInterface(Context c) {
        mContext = c;
    }
    /** Show a toast from the web page */
    @JavascriptInterface
    public void register(String callback) {
        Log.e("work","log printing");   // <--- coming here
        view.loadUrl("javascript:callbacker('hola moma');");
    }

    /** Show a toast from the web page */
    @JavascriptInterface
    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }
}
}
public类MainActivity扩展了AppCompatActivity{
网络视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
视图=新的网络视图(此);
setContentView(视图);
view.loadUrl(“file:///android_res/raw/meter.html");
view.getSettings().setJavaScriptEnabled(true);
addJavascriptInterface(新的WebAppInterface(本),“Android”);
}
公共类WebAppInterface{
语境;
/**实例化接口并设置上下文*/
WebAppInterface(上下文c){
mContext=c;
}
/**在网页上显示祝酒词*/
@JavascriptInterface
公共无效寄存器(字符串回调){

Log.e(“工作”、“日志打印”);//您对此行的期望是什么?
view.loadUrl(“javascript:callbacker('hola moma');”);
我希望它调用html文件中定义的callbacker函数您对此行的期望是什么?
view.loadUrl(“javascript:callbacker('hola moma');”);
我希望它调用html文件中定义的回调函数
    <script type="text/javascript">
        function showAndroidToast(toast) {
            Android.register("callbacker");
        }
        function callbacker(data){
            Android.showToast(data);
        }
    </script>
</head>
<body>

     <p>Display a gauge:</p>
    <meter value="2" min="0" max="10">2 out of 10</meter><br>
    <meter value="0.6">60%</meter>
     <input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />
    <p><strong>Note:</strong> The &lt;meter&gt; tag is not supported in Internet Explorer, Edge 12, Safari 5 and earlier versions.</p>

</body>