階】Android js 與 Android 互調(diào)方法)
一、創(chuàng)建一個(gè)HTML網(wǎng)址進(jìn)行測(cè)試代碼語(yǔ)言javascriptwebView.html代碼語(yǔ)言javascript1.html head title /title /head body input typebutton valueSay hello onClickshowAndroidToast(Web傳遞參數(shù)到Android) / script typetext/javascript function test(card_mo ,price){ Android.showtest(card_moprice); } function showAndroidToast(toast) { Android.showToast(toast); } /script /body /html2.創(chuàng)建一個(gè)JavaScriptInterface 接口類代碼語(yǔ)言javascriptpackage com.ruidde.csndresourcedemo; import android.content.Context; import android.webkit.JavascriptInterface; import android.widget.Toast; /** * Created by Administrator on 2017/1/5. */ public class JavaScriptInterface { Context mContext; /** Instantiate the interface and set the context */ JavaScriptInterface(Context c) { mContext c; } JavascriptInterface /** Show a toast from the web page */ public void showToast(String toast) { Toast.makeText(mContext, toast0000000, Toast.LENGTH_SHORT).show(); } JavascriptInterface /** Show a toast from the web page */ public void showtest(String toast) { Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); } }3.在Activity中使用代碼語(yǔ)言javascriptpackage com.ruidde.csndresourcedemo; import android.os.Bundle; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private String card_mo ,price ; Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); card_mo 1234565; price 32.00; WebView myWebView (WebView) findViewById(R.id.webview); //設(shè)置js可用 WebSettings webSettings myWebView.getSettings(); webSettings.setJavaScriptEnabled(true); //注解自定義對(duì)象 js用自定義的對(duì)象如Android 來(lái)調(diào)用Android中方法 myWebView.addJavascriptInterface(new JavaScriptInterface(this), Android); //網(wǎng)址本地自己寫(xiě)的 myWebView.loadUrl(file:///android_asset/webView.html); //webView網(wǎng)頁(yè)加載進(jìn)度 myWebView.setWebChromeClient(new WebChromeClient() { Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); if (newProgress 100){ //網(wǎng)頁(yè)加載完成 /** * //這是Android調(diào)用js的方法 如test方法在js中要有可以給js中傳遞參數(shù) * 方法在web加載完成后 會(huì)調(diào)用下面方法來(lái)給js傳遞參數(shù) * */ view.loadUrl(javascript:test( card_mo , price )); //aa是js的函數(shù)test()的參數(shù) } } } ); } }更多Android進(jìn)階指南 可以掃碼 解鎖《Android十大板塊文檔》1.Android車(chē)載應(yīng)用開(kāi)發(fā)系統(tǒng)學(xué)習(xí)指南附項(xiàng)目實(shí)戰(zhàn)2.Android Framework學(xué)習(xí)指南助力成為系統(tǒng)級(jí)開(kāi)發(fā)高手3.2024最新Android中高級(jí)面試題匯總解析告別零offer4.企業(yè)級(jí)Android音視頻開(kāi)發(fā)學(xué)習(xí)路線項(xiàng)目實(shí)戰(zhàn)附源碼5.Android Jetpack從入門(mén)到精通構(gòu)建高質(zhì)量UI界面6.Flutter技術(shù)解析與實(shí)戰(zhàn)跨平臺(tái)首要之選7.Kotlin從入門(mén)到實(shí)戰(zhàn)全方面提升架構(gòu)基礎(chǔ)8.高級(jí)Android插件化與組件化含實(shí)戰(zhàn)教程和源碼9.Android 性能優(yōu)化實(shí)戰(zhàn)360°全方面性能調(diào)優(yōu)10.Android零基礎(chǔ)入門(mén)到精通高手進(jìn)階之路敲代碼不易關(guān)注一下吧。?( ′? )