HTMLインターフェイスのレイアウトとデータ交換をロードするためのAndroidのWebView -----

注:この例を実行する前に、最初によく準備、新しい名前でアプリ:資産ディレクトリが(参照を作成する方法がわからないことがありますhttps://blog.csdn.net/Biegral/article/details/47170037

資産下のHTMLファイルのディレクトリをロードするためのストア

 

 

Baiduの関連WebViewの例を直接使用するにはを知るためにどこ、自分自身を説明します。

XMLレイアウトファイル:

 

<?XMLバージョン= " 1.0 "エンコード= " UTF-8 "?> 
<のLinearLayoutのxmlns:アンドロイド= " http://schemas.android.com/apk/res/android " 
    アンドロイド:layout_width = " match_parent " 
    アンドロイド:layout_height = " match_parent " 
    アンドロイド:オリエンテーション = " 垂直" > 

    < WebViewの
        アンドロイド:ID = " @ + ID / obd_webview " 
        アンドロイド:layout_width = "match_parent "
        アンドロイド:layout_height = " 0dp " 
        アンドロイド:layout_weight = " 1 " /> 

    <TextViewのアンドロイド:ID = " @ + ID / obd_text " 
        アンドロイド:layout_width = " match_parent " 
        のandroid:layout_height = " wrap_content " 
        アンドロイド:テキスト = "" / > 

</のLinearLayout>

 

HTMLコンテンツ:

 

<HTML> 
    <HEAD> 
        <メタHTTP-当量= " Content-Typeの"コンテンツ= " text / htmlの;のcharset = UTF-8 " > 
        <スクリプトタイプ= " テキスト/ javascriptの" > 
            関数actionFromNative(){ 
                 のdocument.getElementById(" log_msg ").innerHTML + =
                      " <BR \>ネイティブ调用了JS函数" 
            } 

            関数actionFromNativeWithParam(引数){ 
                 のdocument.getElementById(" log_msg "" \>ネイティブ呼び出しJS機能を<brおよびパラメータ渡し:" + のArgを); 
            }

         </ SCRIPT> 
    </ head> 
    <body> 
        <P>のWebViewとJavascriptが相互作用</ P> 
        <DIV> 
            <ボタンのonClick = " window.web.actionFromJsは()" >ネイティブコードを呼び出すためにクリックし、</ボタン> 
        </ div> 
        A 
        の<div> 
            <ボタンのonClick = " window.web.actionFromJsWithParam( 'のJsから来る')"を呼び出すためにクリック>ネイティブコードとパスパラメータ</ボタン> 
        </ div>の
        A
        <DIV ID = " log_msg ">印刷情報の呼び出し</ div> 
    </ BODY> 
</ HTML>

 

ロジックアンドロイド:

 

パブリック クラスOBDCheckWebViewはAppCompatActivity {拡張

    プライベートのWebView OBDmwebViewを。
    民間のTextView OBDTextView。

    @Override 
    保護された ボイドのonCreate(バンドルsavedInstanceState){ 
        super.onCreate(savedInstanceState)。
        setContentView(R.layout.activity_obdcheck_webview)。

        OBDmwebView = この.findViewById(R.id.obd_webview)。
        OBDmwebView.getSettings()setJavaScriptEnabled();   // 启用Javascriptを 
        OBDmwebView.loadUrl(" ファイル:///android_asset/web.html ");  //ファイルのパスとファイル名ロード 
        OBDmwebView.addJavascriptInterfaceを(これは" ウェブ" ;)

        OBDTextViewは = この.findViewById(R.id.obd_text)を、

        文字列[]データ = { " 20190606001 "" FS301 "" 13024 "広東省-A888 2019年2月2日15時三十八分28秒338キロ}; 

    } 

    // このメソッドは、パラメータをしました
    android.webkit.JavascriptInterface @
     公共 のボイドactionFromJs(){ 
        runOnUiThread(新しい新しいRunnableを(){ 
            @Override 
            公共 ボイドRUN(){ 
                Toast.makeText(OBDCheckWebView。この" ネイティブと呼ばれるJS機能" 、Toast.LENGTH_SHORT).SHOW( ); 
                文字列のテキスト = OBDTextView.getText()+ " \ネイティブと呼ばれるNJS機能" ; 
                OBDTextView.setText(テキスト); 
            } 
        }); 
    } 

    // パラメータを渡す
    @ android.webkit.JavascriptInterface
    公共 ボイドactionFromJsWithParam(最終文字列[] STR){ 
        runOnUiThread(新しい新しいRunnableを(){ 
            @Override 
            公共 ボイドRUN(){ 
                Toast.makeText(OBDCheckWebView。この" JSネイティブ関数呼び出し転送パラメータ:" + STR、Toast.LENGTH_SHORT ).SHOW(); 
                文字列のテキスト = OBDTextView.getText()+   " \ NJSネイティブ関数呼び出し転送パラメータ:" + STR; 
                OBDTextView.setText(テキスト); 
            } 
        }); 

    } 

}

 

示すように業績:

 

おすすめ

転載: www.cnblogs.com/xiobai/p/11084511.html