11、WebView 使用总结

 

<WebView
     android:id="@+id/webview"
     android:background="@color/white"
     android:layout_width="fill_parent"
     android:layout_height="180dp"
     android:layout_margin="5dp" />
// 访问网络权限
<uses-permission android:name="android.permission.INTERNET" /> 
  webview.getSettings().setJavaScriptEnabled(true);
  
  //自适应屏幕
  webview.getSettings().setUseWideViewPort(true);
  webview.getSettings().setLoadWithOverviewMode(true);
   //支持缩放
  webview.getSettings().setSupportZoom(true);
  webview.getSettings().setBuiltInZoomControls(true);
  
  webview.loadUrl(“”);   // 加载网页
  webview.setWebViewClient(new MyWebViewClient());  // 不写这个,有可能部分网页加载不出来
 
  class MyWebViewClient extends WebViewClient {
        @Override
        // 在WebView中而不是默认浏览器中显示页面
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
  }

 

WebView可直接指定URL显示网页:webView.loadUrl("http://www.baidu.com"); 

WebView可直接装载HTML代码 :  

webView.loadDataWithBaseURL(baseUrl, html, "text/html", "utf-8", historyUrl); 

JavaScript可以调用Java方法,互相传递数据 

webView.addJavascriptInterface(new Object()  {

     public void move(int x, int y)  {

          ... ...

     }
}, "demo"); 


点击页面按钮得到的Url连接地址。
 1 class MyWebViewClient extends WebViewClient {
 3         @Override    // 点击页面按钮得到的Url连接地址。
 4         public boolean shouldOverrideUrlLoading(WebView view, String url) {
 8             if (url.equals(WebUrl.ExitLogin)) {  // 如果定义的地址和得到的地址相同
 9                 AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
10                 dialog.setTitle(getResources().getText(R.string.main_title));
11                 dialog.setMessage(getResources().getText(R.string.main_message));
12                 dialog.setNegativeButton(getResources().getText(R.string.main_cancel),
13                         new DialogInterface.OnClickListener() {
14                             @Override
15                             public void onClick(DialogInterface dialog, int which) {
16                                 dialog.dismiss();
17                             }
18                         });
19                 dialog.setPositiveButton(getResources().getText(R.string.main_ok),
20                         new DialogInterface.OnClickListener() {
21                             @Override
22                             public void onClick(DialogInterface dialog, int which) {
23                                 .............30                             }
31                         });
32 
33                 dialog.show();
35             } else {
36                 view.loadUrl(url);
37             }
39             return true;
40         }
webview.setWebViewClient(new MyWebViewClient());

 

获取页面弹出的对话框,可以获取对话框的内容 message。

webview.setWebChromeClient(new WebChromeClient() {
   @Override    // 获取页面弹出的对话框,可以获取对话框的内容 message。
   public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
      if (!TextUtils.isEmpty(message)) {
         AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
         dialog.setTitle(getResources().getText(R.string.main_title));
         dialog.setMessage(getResources().getText(R.string.main_message));
         dialog.setNegativeButton(getResources().getText(R.string.main_cancel),
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
         dialog.setPositiveButton(getResources().getText(R.string.main_ok),
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        ..........
                    }
                 });
           dialog.show();
        }
        return true;
    }
    @Override
    public boolean onJsConfirm(WebView view, String url, String message, 
JsResult result) {
return true; } });

 

 获取(网)页面弹出的对话框。

webview.setWebChromeClient(new WebChromeClient() {
    @Override    // 获取页面弹出的对话框,可以获取对话框的内容 message。
    public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
        if (!TextUtils.isEmpty(message)) {
              Log.i("tag", "onJsAlert..." + message);
              return false;
        }
            return true;
    }
     @Override
     public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
        return true;
      }
});

 

WebView加载网页开始 ------- 网页加载完成,现在进度条。

 1 class MyWebViewClient extends WebViewClient {
 2 
 3         @Override
 4         public void onPageStarted(WebView view, String url, Bitmap favicon) {
 5             super.onPageStarted(view, url, favicon);
 6 
 7             progress.setVisibility(View.VISIBLE);
 8             textview.setVisibility(View.VISIBLE);
 9         }
10 
11         @Override
12         public void onPageFinished(WebView view, String url) {
13             super.onPageFinished(view, url);
14 
15             progress.setVisibility(View.GONE);
16             textview.setVisibility(View.GONE);
17         }
18 
19         @Override    // 点击页面按钮得到的Url连接地址。
20         public boolean shouldOverrideUrlLoading(WebView view, String url) {
22             Log.i("tag", "MyWebViewClient..." + url);
23 
24             if (url.equals(WebUrl.ExitLogin)) {
                  ...........
60             } else {
61                 view.loadUrl(url);
62             }
64             return true;
65         }
67     }

 

WebView缓存清除

webview.clearCache(true);
webview.clearHistory();
webview.clearFormData();
webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

http://www.eoeandroid.com/thread-66479-1-1.html

 

Android安全开发之WebView中的地雷 

 http://www.devdiv.com/Android-android_webview_-thread-218274-1-1.html

 

WebView基本使用   http://www.cnblogs.com/mengdd/archive/2013/03/01/2938295.html

Android WebView常见问题及解决方案汇总   http://www.cnblogs.com/lee0oo0/p/4026774.html

Android WebView使用总结   http://blog.csdn.net/hknock/article/details/8560490

网页启动Activity,网页传值Activity  http://www.cnblogs.com/androidsj/p/4527868.html

 开源浏览器:http://www.apkbus.com/android-44306-1-1.html

 webkit for android http://www.cnblogs.com/Caiqinghua/archive/2011/05/04/2036864.html

 

 

 

转载于:https://www.cnblogs.com/androidsj/p/3929357.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android Studio中使用WebView的步骤如下: 1. 在布局文件中添加WebView组件: ``` <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 2. 在Activity中获取WebView组件的引用: ``` WebView webView = (WebView) findViewById(R.id.webview); ``` 3. 设置WebView的属性,如启用JavaScript、缩放等: ``` webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setBuiltInZoomControls(true); ``` 4. 加载网页: ``` webView.loadUrl("http://www.example.com"); ``` 5. 处理WebView的各种事件,如页面加载完成、页面加载失败等: ``` webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { // 页面加载完成 } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { // 页面加载失败 } }); ``` 以上就是使用Android Studio中WebView的基本步骤。 ### 回答2: Android Studio是开发Android应用程序的集成开发环境(IDE)。其中一个常见的功能是使用WebView来显示Web内容。WebView是Android中的内置组件,可用于在应用程序中显示Web页面。这对于需要整合Web和本地应用程序的开发人员来说非常有用。 使用WebView在应用程序中显示Web页面的过程包括以下步骤: 1.在布局文件中添加WebView元素:在布局文件中添加一个WebView元素。例如: <WebView android:id="@+id/web_view" android:layout_width="match_parent" android:layout_height="match_parent" /> 2.在Java代码中为WebView加载URL:在Java代码中为WebView加载URL。例如: WebView webView = (WebView) findViewById(R.id.web_view); webView.loadUrl("http://www.example.com/"); 3.自定义WebView设置:根据需要,可以使用WebView类的各种设置进行自定义。例如: webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setDisplayZoomControls(false); webView.setWebViewClient(new WebViewClient()); 4.处理WebView中的链接:处理WebView中的链接通常需要添加WebViewClient。例如: webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("http:") || url.startsWith("https:")) { view.loadUrl(url); return false; } // Handle other URL schemes return true; } }); 这些步骤的组合可以帮助您在Android应用程序中轻松使用WebView。如果您想更深入地学习WebView使用,可以探索WebView类的其他方法和WebViewClient类的功能。 ### 回答3: Android Studio是一个功能强大的开发工具,可以用于Android App的开发。而使用WebView是在Android应用中显示网页内容的常用方式。WebView是Android中自带的一个View,可以将它作为一个控件嵌入应用程序中,以显示Web页面。 WebView使用方法如下: 1. 在布局文件中添加WebView控件: ``` <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent"/> ``` 2. 在Java代码中获取WebView控件的实例,并使用loadUrl()方法加载需要显示的网页: ``` WebView webView = (WebView) findViewById(R.id.webview); webView.loadUrl("http://www.example.com/"); ``` 3. 如果需要细致地控制WebView的行为,可以使用WebSettings类来进行设置。例如设置支持JavaScript: ``` WebSettings webViewSettings = webView.getSettings(); webViewSettings.setJavaScriptEnabled(true); ``` 4. WebView也支持处理一些与网页有关的事件。例如,当WebView加载完毕时,调用onPageFinished()方法: ``` webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { // Do something when page is finished loading } }); ``` 5. 如果需要拦截WebView中的请求并进行处理,可以使用WebViewClient类的shouldOverrideUrlLoading()方法: ``` webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // Do something when a url is clicked inside the WebView return true; // Return true to indicate the click has been handled } }); ``` 总而言之,WebView是一个非常便捷的控件,使得在Android应用程序中显示网页内容非常易于操作。通过加入一些简单的设置和事件处理,可以在应用程序中提供完整的Web浏览体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值