例:
//在本页面加载网页,不调用系统浏览器
webView.setWebViewClient(new WebViewClient());
//支持js
WebSettings settings = webView.getSettings();
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setJavaScriptEnabled(true);
加权限:
<uses-permission android:name="android.permission.INTERNET"/>
主页面布局:
public class MainActivity extends AppCompatActivity { private WebView www_wb; private ProgressBar webView_pb; private EditText path_et; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化 initView(); //使用webview对象,进行初始化 webViewinit(); //得到webviewSettings对webview进行初始化设置 webviewSettingSInit(); } public void load(View view){ String trim = path_et.getText().toString().trim(); if (TextUtils.isEmpty(trim)){ Toast.makeText(this,"不能输入为空",Toast.LENGTH_SHORT).show(); return; } www_wb.loadUrl("http://"+trim); } //得到webviewSettings对webview进行初始化设置 private void webviewSettingSInit() { WebSettings settings = www_wb.getSettings(); settings.setJavaScriptEnabled(true); settings.setSupportZoom(true);//设置可以支持缩放 } //使用webview对象,进行初始化 private void webViewinit() { //点击在App内执行 www_wb.setWebViewClient(new WebViewClient()); //WebView加载网页监听,其进度和我们的进度条相绑定,然后显示出我们也想的效果 www_wb.setWebChromeClient(new WebChromeClient(){ //方法中的onProgressChanged就代表了其速度 @Override public void onProgressChanged(WebView view, int newProgress) { //首先我们的进度条是隐藏的 webView_pb.setVisibility(View.VISIBLE); //把网页加载的进度传给我们的进度条 webView_pb.setProgress(newProgress); if (newProgress == 100){ //加载完毕让进度条消失 webView_pb.setVisibility(View.GONE); } super.onProgressChanged(view, newProgress); } }); } //初始化 private void initView() { path_et = findViewById(R.id.path_et); webView_pb = findViewById(R.id.webView_pb); www_wb = findViewById(R.id.www_wb); } }
布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical"> <!-- 用到了权重知识,progress进度条模式:style="?android:attr/progressBarStyleHorizontal" --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <EditText android:id="@+id/path_et" android:text="www.badu.com" android:layout_width="match_parent" android:layout_weight="1" android:layout_height="wrap_content" android:singleLine="true" android:hint="请用户输入网址,直接从www开始即可" /> <Button android:onClick="load" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="加载网页"/> </LinearLayout> <ProgressBar android:id="@+id/webView_pb" android:layout_width="match_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal" android:max="100" android:visibility="gone" /> <WebView android:id="@+id/www_wb" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1"> </WebView> <!--<LinearLayout--> <!--android:layout_width="match_parent"--> <!--android:layout_height="wrap_content"--> <!--android:orientation="horizontal">--> <!--<Button--> <!--android:onClick="refresh"--> <!--android:layout_width="0dp"--> <!--android:layout_weight="1"--> <!--android:layout_height="wrap_content"--> <!--android:text="刷新"--> <!--/>--> <!--<Button--> <!--android:onClick="advance"--> <!--android:layout_width="0dp"--> <!--android:layout_weight="1"--> <!--android:layout_height="wrap_content"--> <!--android:text="前进"--> <!--/>--> <!--<Button--> <!--android:onClick="back"--> <!--android:layout_width="0dp"--> <!--android:layout_weight="1"--> <!--android:layout_height="wrap_content"--> <!--android:text="后退"--> <!--/>--> <!--</LinearLayout>--> </LinearLayout>