简单介绍下webview可以直接复制到项目中使用。
1、
界面布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <WebView android:id="@+id/thirdpartwebview" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" android:scrollbars="none" /> </LinearLayout>
2、
代码及介绍
public class ThirdPartyWebView1 extends MainNoBackBaseActivity { @BindView(R.id.thirdpartwebview) WebView thirdpartwebview; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.third_part_webview); } @Override public void initView() { thirdpartwebview.setWebChromeClient(new WebChromeClient()); thirdpartwebview.getSettings().setDefaultTextEncodingName("utf-8");// 避免中文乱码 thirdpartwebview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); WebSettings settings = thirdpartwebview.getSettings(); settings.setJavaScriptEnabled(true); settings.setNeedInitialFocus(false); settings.setSupportZoom(true); settings.setAppCacheEnabled(true); //开启缓存功能 settings.setCacheMode(WebSettings.LOAD_DEFAULT); settings.setLoadWithOverviewMode(true);//适应屏幕 settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); settings.setLoadsImagesAutomatically(true);//自动加载图片 settings.setDomStorageEnabled(true);//这里你酌情看看要不要加这句代码,两年代码就遇到一次需要加的,因为界面加载不出来,加了这句话才加载出来的。也是因为要加这句才写这篇博客的。 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { settings.setMixedContentMode(thirdpartwebview.getSettings().MIXED_CONTENT_ALWAYS_ALLOW); //注意安卓5.0以上的权限 }// 封装监听home键 mHomeWatcher = new HomeWatcher(this); mHomeWatcher.setOnHomePressedListener(new HomeWatcher.OnHomePressedListener() { @Override public void onHomePressed() { thirdpartwebview.onPause(); } @Override public void onHomeLongPressed() { } }); mHomeWatcher.startWatch(); } @Override public void initData() { thirdpartwebview.loadUrl(spreadUrl); thirdpartwebview.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if(url.endsWith(".apk")){ CLToastUtil.showToast(ThirdPartyWebView1.this,"需要去下载apk"); }else{ view.loadUrl(url); } return false; } @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); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); } @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { } }); } //重写返回键被点击的事件 @OnClick(R.id.left_arrow) public void OnClick(View view) { switch (view.getId()) { case R.id.left_arrow: backPress(); break; } } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // 按下键盘上按钮 if (keyCode == KeyEvent.KEYCODE_BACK) { backPress(); return true; } else { return super.onKeyDown(keyCode, event); } } @Override public void onDestroy() { mHomeWatcher.stopWatch(); super.onDestroy(); } }