AndroidのJavaとJavaScriptメソッドの相互調整


Androidの開発ではWebViewがよく使われ、AndroidのjavaコードとWebページのjavaScriptメソッドの相互呼び出しに関わる.
準備作業
  • 最も基本的なWebViewオブジェクトを得る
        @Bind(R.id.webview)
        WebView webview;
    
        WebView webview= (WebView) findViewById(R.id.webview);
    の2つの方法
  • ButterKnifeプラグイン注釈
  • を使用
  • 普通findViewById
  • デフォルトのテキスト符号化方式はutf-8
    webview.getSettings().setDefaultTextEncodingName("utf-8");
  • に設定.
  • jsコード
    webview.getSettings().setJavaScriptEnabled(true);
  • の実行を許可する.
    JavaコードJavaScriptを呼び出す方法
    WebページのJavaScriptコード
    <script type="text/javascript">
    
        function changeInputValue(content){
            document.getElementById("put_id").value=content;
    
        }
    
    script>

    例えばjavaコードでWebページのchangeInputValueを呼び出す方法
    webview.loadUrl("javascript:changeInputValue('    ')");
    webView  loadUrl  ,       
      :
        javascript: + JavaScript     ('  '); 
    

    HTML(Webページ)コードJavaを呼び出す方法
    JAvaのコード:
    webview.addJavascriptInterface(new JavaScriptInterface(),"AndroidMethod");
    
    
    
    class JavaScriptInterface{
    
            @JavascriptInterface
            public void showToast(String content){
                Toast.makeText(getApplicationContext(), content, Toast.LENGTH_SHORT).show();
            }
        }
    
      webview  addJavascriptInterface  ,       "  " 
            
        1."  "       new  
        2.      JavaScript    
    
         "  " 
                                     ,      
    

    JavaScriptのコード
    <script type="text/javascript">
        function showAndroidMethod(content) {
            AndroidMethod.showToast(content);
        }
    script>
     JavaScript              java           "  "