3

単純な処理を行うプログラムを作成しようとしていtoastます。内にスクリプトを追加しようとしたところHTML、機能し、toast. しかし、同じscriptコードをassertフォルダー (script.js) の下の別のファイルに配置すると、javascript.

API 15 以降をサポートしています。

を挿入しようとしているコードは次のとおりscriptです。

    myWebView = (WebView) findViewById(R.id.webviewid);

    myWebView.loadDataWithBaseURL("file:///android_asset/",
            "<html>" +
            "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">" +
            "<style type=\"text/css\">\n" +
            "@font-face {\n" +
            "    font-family: MyFont;\n" +
            "    src: url(\"file:///android_asset/fonts/myfont.ttf\")\n" +
            "}\n" +
            "body {\n" +
            "    font-family: MyFont;\n" +
            "    font-size: medium;\n" +
            "    text-align: justify;\n" +
            "}\n" +
            "</style>" +
            "</head>" +
            "<body>" +
            "<input type=\"button\" value=\"Say hello\" onClick=\"showAndroidToast('Hello Android!')\" />" +
            "<script type=\"text/javascript\" src=\"file:///android_asset/www/js/script.js\"/>" +
            "</body>" +
            "</html>", "text/html", "UTF-8", null);
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
    myWebView.setWebViewClient(new MyWebViewClient());

これが私のjavascriptコードです。(script.js)

    function showAndroidToast(toast) {
        Android.showToast(toast);
    };

これが私のJavascriptインターフェースです:

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

javascriptファイルを挿入するにはどうすればよいですか? どんな助けでも大歓迎です。

私のプロジェクト構造は次のようなものです:

    ---
      |
      ---- App
           |
           -----src
                |
                -----main
                     |
                     ------asserts
                     |     |
                     |     ------fonts
                     |     |
                     |     ------www
                     |     |     |
                     |     |     ------js
                     |     |           |
                     |     |           ------script.js
                     |
                     ------java
                     |
                     ------res

猫のログには次のように表示されます。

 E/Web Console﹕ Uncaught ReferenceError: showAndroidToast is not defined:13
4

1 に答える 1

0

WebView を使用してデータを表示しているので、それをサーバーまたは Dropbox にアップロードしてから、URL インポートに接続できますか?

于 2014-09-24T13:46:49.293 に答える