ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【Android进阶】Android js 与 Android 互调方法

【Android进阶】Android js 与 Android 互调方法 一、创建一个HTML网址进行测试代码语言javascriptwebView.html代码语言javascript1.html head title /title /head body input typebutton valueSay hello onClickshowAndroidToast(Web传递参数到Android) / script typetext/javascript function test(card_mo ,price){ Android.showtest(card_moprice); } function showAndroidToast(toast) { Android.showToast(toast); } /script /body /html2.创建一个JavaScriptInterface 接口类代码语言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中使用代码语言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); //设置js可用 WebSettings webSettings myWebView.getSettings(); webSettings.setJavaScriptEnabled(true); //注解自定义对象 js用自定义的对象如Android 来调用Android中方法 myWebView.addJavascriptInterface(new JavaScriptInterface(this), Android); //网址本地自己写的 myWebView.loadUrl(file:///android_asset/webView.html); //webView网页加载进度 myWebView.setWebChromeClient(new WebChromeClient() { Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); if (newProgress 100){ //网页加载完成 /** * //这是Android调用js的方法 如test方法在js中要有可以给js中传递参数 * 方法在web加载完成后 会调用下面方法来给js传递参数 * */ view.loadUrl(javascript:test( card_mo , price )); //aa是js的函数test()的参数 } } } ); } }更多Android进阶指南 可以扫码 解锁《Android十大板块文档》1.Android车载应用开发系统学习指南附项目实战2.Android Framework学习指南助力成为系统级开发高手3.2024最新Android中高级面试题汇总解析告别零offer4.企业级Android音视频开发学习路线项目实战附源码5.Android Jetpack从入门到精通构建高质量UI界面6.Flutter技术解析与实战跨平台首要之选7.Kotlin从入门到实战全方面提升架构基础8.高级Android插件化与组件化含实战教程和源码9.Android 性能优化实战360°全方面性能调优10.Android零基础入门到精通高手进阶之路敲代码不易关注一下吧。ღ( ´ᴗ )
返回列表