Android进阶之路 - Android中通过WebView与H5的简单交互
2018-01-23 10:22
561 查看
此篇讲解的是Android通过WebView与H5的简单交互,分直接调用无参方法与传入方法参数。
这是我们要在App端展示的H5界面
H5地址对应的代码
以下代码便是H5中的一个方法(PS:setVersion 为方法名)
Android中代码片段:
1.首先我们在onCreat生命周期内调用
2.监听WebView的加载状态
3.注意,调用了H5的方法传入对应的参数
Android完整代码 :
除去俩者交互,部分WebView进度条加载也可以通过这里学习。
这是我们要在App端展示的H5界面
H5地址对应的代码
以下代码便是H5中的一个方法(PS:setVersion 为方法名)
<script type="text/javascript"> function setVersion(version) { document.getElementById("version").innerHTML = version } </script>
Android中代码片段:
1.首先我们在onCreat生命周期内调用
//加载H5地址 mWebView.loadUrl("这里输入我们要调用的H5地址");
2.监听WebView的加载状态
/** * 监听WebView的加载状态 分别为 : 加载的 前 中 后期 * */ mWebView.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); //获取当前版本号 String versionName = DeviceUtils.getVersionName(AboutUsActivity.this); //在加载完成之后,我们通过android的方法,去调用js的方法,设置对应的版本号 mWebView.loadUrl("javascript:setVersion('" + versionName + " ');"); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //本应该加载的H5静态界面 mWebView.loadUrl(url); return true; } });
3.注意,调用了H5的方法传入对应的参数
mWebView.loadUrl("javascript:setVersion('" + versionName + " ');");
Android完整代码 :
package com.bakheet.garage.mine.activity; import android.graphics.Bitmap; import android.os.Bundle; import android.view.View; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ProgressBar; import com.bakheet.garage.R; import com.bakheet.garage.base.BaseActivity; import com.bakheet.garage.http.HttpUrl; import com.bakheet.garage.utils.DeviceUtils; /** * @author Created by YongLiu on 2017/11/14. */ public class AboutUsActivity extends BaseActivity { private WebView mWebView; @Override protected int getLayoutId() { return R.layout.activity_about; } @Override protected void init(Bundle savedInstanceState) { setToolBarTitle(getString(R.string.title_about_us)); mWebView = (WebView) findViewById(R.id.web_agreement); final ProgressBar mBar = (ProgressBar) findViewById(R.id.progress_Bar); //允许Js的语言执行 mWebView.getSettings().setJavaScriptEnabled(true); //加载本地H5 // mWebView.loadUrl("file:///android_asset/about.html"); //加载H5地址 mWebView.loadUrl(HttpUrl.ABOUT_H5 + "?timestamp=" + System.currentTimeMillis()); /** * 监听WebView的加载状态 分别为 : 加载的 前 中 后期 * */ mWebView.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); String versionName = DeviceUtils.getVersionName(AboutUsActivity.this); //在加载完成之后,我们通过android的方法,去调用js的方法,设置对应的版本号 mWebView.loadUrl("javascript:setVersion('" + versionName + " ');"); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //本应该加载的H5静态界面 mWebView.loadUrl(url); return true; } }); mWebView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { if (newProgress == 100) { mBar.setVisibility(View.GONE); } else { mBar.setVisibility(View.VISIBLE); mBar.setProgress(newProgress); } } }); } }
除去俩者交互,部分WebView进度条加载也可以通过这里学习。
相关文章推荐
- WebView详解与简单实现Android与H5互调
- WebView详解与简单实现Android与H5互调
- android webview H5开发若干问题之问题三:android和js交互问题
- Android利用WebView与h5交互的几种形式
- android 的webView加载h5,和h5的交互(java和JavaScript的交互)
- 简单齐全的webview与H5 交互 多中自定义进度条
- (转)Android 通过WebView和js的交互
- 关于webview最详细讲解(包含 h5 和android 交互)
- android 中 java 和 javascript 通过webview 交互
- WebView详解与简单实现Android与H5互调
- android通过webview和js交互
- android:如何通过chrome远程调试APP中的webView的h5代码
- 关于webview最详细讲解(包含 h5 和android 交互)
- android之通过webview实现与js方法相互调用,数据交互
- Android中 WebView与Javascript简单交互
- android webview设置以及与h5交互
- android 通过webView,简单的通过网页唤起本地界面,如果比较多的话最好不要用原生的webView和js去搭建,用框架去做
- WebView详解与简单实现Android与H5互调
- android web view的学习 2 通过WebChomeClient 实现进度条和title,通过WebViewClient 来进行url的拦截,和javascript的交互