android WebView加载H5去地址栏的两种方式
android WebView加载H5去地址栏的两种方式,先上图
四个布局文件:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:padding="30dp"> <Button android:id="@+id/btn_normal" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="正常加载未处理的WebView" /> <Button android:id="@+id/btn_noTitle" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/btn_normal" android:layout_marginTop="10dp" android:text="去除标题的WebView" /> <Button android:id="@+id/btn_noTitle2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/btn_noTitle" android:layout_marginTop="10dp" android:text="去除标题的2" /> </RelativeLayout>
activity_second.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.dr.dr_webview.SecondActivity"> <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent"></WebView> </RelativeLayout>
activity_no_title.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.dr.dr_webview.SecondActivity"> <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent"></WebView> </RelativeLayout>
activity_no_title2.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.dr.dr_webview.SecondActivity"> <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent"></WebView> </RelativeLayout>
四个java文件
MainActivity.class
package com.dr.dr_webview; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn_normal = (Button) findViewById(R.id.btn_normal); Button btn_noTitle = (Button) findViewById(R.id.btn_noTitle); Button btn_noTitle2 = (Button) findViewById(R.id.btn_noTitle2); btn_normal.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,SecondActivity.class); startActivity(intent); } }); btn_noTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,NoTitleActivity.class); startActivity(intent); } }); btn_noTitle2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,NoTitleActivity2.class); startActivity(intent); } }); } }
SecondAcitivty.class
package com.dr.dr_webview; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; public class SecondActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); WebView webView = (WebView) findViewById(R.id.webview); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true); webView.loadUrl("http://www.baidu.com"); } }
NoTitleActivity.class
package com.dr.dr_webview; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class NoTitleActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_no_title); WebView webView = (WebView) findViewById(R.id.webview); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true); webView.loadUrl("http://www.baidu.com"); webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); //编写 javaScript方法 /* String javascript = "javascript:function hideOther() {" + "document.getElementsByTagName('body')[0].innerHTML;" + "document.getElementsByTagName('div')[0].style.display='none';" + "document.getElementsByTagName('div')[3].style.display='none';" + "document.getElementsByClassName('dropdown')[0].style.display='none';" + "document.getElementsByClassName('min')[0].remove();" + "var divs = document.getElementsByTagName('div');" + "var lastDiv = divs[divs.length-1];" + "lastDiv.remove();" + "document.getElementsByClassName('showme')[0].remove();" + "document.getElementsByClassName('nei-t3')[1].remove();}";*/ String javascript = "javascript:function hideOther() {" + "document.getElementsByTagName('body')[0].innerHTML;" + "document.getElementsByTagName('div')[0].style.display='none';" + "document.getElementsByTagName('div')[3].style.display='none';" + "document.getElementsByClassName('dropdown')[0].style.display='none';" + "document.getElementsByClassName('min')[0].remove();" + "var divs = document.getElementsByTagName('div');" + "var lastDiv = divs[divs.length-1];" + "lastDiv.remove();" + "document.getElementsByClassName('showme')[0].remove();" //+ // "document.getElementsByClassName('nei-t3')[1].remove();}" ; //创建方法 view.loadUrl(javascript); //加载方法 view.loadUrl("javascript:hideOther();"); } }); } }
NoTitleActivity2.class
package com.dr.dr_webview; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class NoTitleActivity2 extends AppCompatActivity { String url; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_no_title2); WebView mWebView = (WebView) findViewById(R.id.webview); url = "http://www.baidu.com"; WebSettings setting = mWebView.getSettings(); setting.setJavaScriptEnabled(true);//让webview支持javascript setting.setDefaultTextEncodingName("utf-8");//设置字符集 //setting.setBlockNetworkImage(true);//设置不能访问网络图片 // setting.setSupportZoom(true);//开启网页的缩放 // setting.setBuiltInZoomControls(true); setting.setLoadWithOverviewMode(true);//设置网页缩放至手机大小 setting.setUseWideViewPort(true); mWebView.getSettings().setJavaScriptEnabled(true);//让webview支持javascript mWebView.setWebChromeClient(new WebChromeClient());//支持特殊javascript mWebView.loadUrl(url); mWebView.setWebViewClient(new MyWebViewClient()); } private class MyWebViewClient extends WebViewClient { @Override // 在WebView中而不在默认浏览器中显示页面 public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } }
源码下载:
http://download.****.net/download/qq_31939617/9997944