Javascript Android WebView问题-未捕获引用错误:';字符串';没有定义

Javascript Android WebView问题-未捕获引用错误:';字符串';没有定义,javascript,java,android,angularjs,webview,Javascript,Java,Android,Angularjs,Webview,我知道已经有人问过了 但是,即使遵循了这里公认的答案(以及类似的其他问题),由于未捕获的引用错误,我也无法将客户端Android代码链接到JavaScript 我的Android代码片段- public class WebActivityExample extends Activity { WebView mWebView; WebAppInterface WAInterface; @Override public void onCreate(Bund

我知道已经有人问过了

但是,即使遵循了这里公认的答案(以及类似的其他问题),由于未捕获的引用错误,我也无法将客户端Android代码链接到JavaScript

我的Android代码片段-

    public class WebActivityExample extends Activity {

    WebView mWebView;
    WebAppInterface WAInterface;

    @Override
    public void onCreate(Bundle savedInstanceState) {

    this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
        super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
     mWebView = (WebView) findViewById(R.id.webview);
     mWebView.getSettings().setJavaScriptEnabled(true);
     WAInterface = new WebAppInterface(this);
     mWebView.addJavascriptInterface(WAInterface, "Android");
     mWebView.loadUrl("http://myurlhere");

   }

    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 showToast(String toast) {
            Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
            System.out.println("toast " + toast);
        }
    }
}
我的网站在客户端运行AngularJS,在服务器端运行PHP。因此,我有一个
index.php
文件,它保存了整个应用程序需要包含的所有JavaScript文件和CSS文件

这是我的HTML代码-

(这是一个包含HTML按钮的角度模板视图)——

更新1:

参考以下SO答案后: 1. 2.

我创建了一个名为WebAppInterface的新Java类,并将公共类从这个代码片段(在我的主类中)转移到WebAppInterface.Java类中

我还将我的最低APK版本更改为17


仍然面临同样的问题。任何帮助都将不胜感激

这是什么?Javascript?id在哪里定义了“Android”?您需要包含一些JS文件吗?Android是这里定义的字符串-mWebView.addJavascriptInterface(WAInterface,“Android”);showToast是上面我的Java代码片段中@JavascriptInterface下面的函数。我遵循这个原则也是为了同样的目的。根据文档-不,我不需要包含任何JS文件,只需编写脚本,它应该将其绑定到我的Android功能。很抱歉在编写答案时感到困惑。这是一个WebView,以本机方式加载我的webapp,我已经看到很多答案和示例都在做同样的事情。。根据你的说法,为什么它不适用于我的用例?你注意到文档中的小“a”(新的WebAppInterface(this),“android”);”。名字不一样似乎很奇怪。你试过用一个小“a”吗?
<input type ="button" value="Say Hello!" onClick="showAndroidToast('Hello Android!')" />
    <html xmlns:ng="http://angularjs.org" id="ng-app" ng-app="myapp">   
        <head>
          (various scripts and stylesheets included here)
        </head>
        <body>
             ....
             ....

            <script type="text/javascript">
              function showAndroidToast(toast) {
              alert(toast);
              Android.showToast(toast);          
    }
            </script>

      </body>
  </html>
I/chromium: [INFO:CONSOLE(243)] "Uncaught ReferenceError: Android is not defined", source: ..