Android第二十七期 - webView

简介:

    自己新建一个项目弄弄吧:

    activity:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
public  class  School_ggtz  extends  Activity {
     private  WebView webView;
     private  String url;
     private  ImageView iv_school_title;
     private  TextView tv_school_content;
     private  ProgressDialog dialog;
 
     @Override
     protected  void  onCreate(Bundle savedInstanceState) {
         // TODO Auto-generated method stub
         super .onCreate(savedInstanceState);
         setContentView(R.layout.activity_school_xxgk);
         iv_school_title = (ImageView) findViewById(R.id.iv_school_title);
         iv_school_title.setOnClickListener( new  View.OnClickListener() {
 
             @Override
             public  void  onClick(View arg0) {
                 finish();
             }
         });
         tv_school_content = (TextView) findViewById(R.id.tv_school_content);
         tv_school_content.setText(getResources().getString(
                 R.string.school_ggtz_content));
         webView = (WebView) findViewById(R.id.id_webview);
         url = getResources().getString(R.string.school_ggtz);
         webView.loadUrl(url);
         webView.setWebViewClient( new  WebViewClient() {
             @Override
             public  boolean  shouldOverrideUrlLoading(WebView view, String url) {
                 view.loadUrl(url);
                 return  true ;
             }
         });
         WebSettings settings = webView.getSettings();
         settings.setSupportZoom( true );
         settings.setBuiltInZoomControls( true );
         settings.setDisplayZoomControls( false );  // 隐藏webview缩放按钮
         settings.setUseWideViewPort( true );
         settings.setLoadWithOverviewMode( true );
         settings.setJavaScriptEnabled( true );
         settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
         webView.setWebChromeClient( new  WebChromeClient() {
 
             @Override
             public  void  onProgressChanged(WebView view,  int  newProgress) {
                 // TODO Auto-generated method stub
                 // newProgress 1-100之间的整数
                 if  (newProgress ==  100 ) {
                     // 网页加载完毕,关闭ProgressDialog
                     closeDialog();
                 else  {
                     // 网页正在加载,打开ProgressDialog
                     openDialog(newProgress);
                 }
             }
 
             private  void  closeDialog() {
                 // TODO Auto-generated method stub
                 if  (dialog !=  null  && dialog.isShowing()) {
                     dialog.dismiss();
                     dialog =  null ;
                 }
             }
 
             private  void  openDialog( int  newProgress) {
                 // TODO Auto-generated method stub
                 if  (dialog ==  null ) {
                     dialog =  new  ProgressDialog(School_ggtz. this );
                     dialog.setTitle( "正在加载" );
                     dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                     dialog.setProgress(newProgress);
                     dialog.show();
 
                 else  {
                     dialog.setProgress(newProgress);
                 }
 
             }
         });
     }
}

    xml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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:background= "@color/white"
     android:orientation= "vertical"  >
 
     <include layout= "@layout/activity_school_title"  />
 
     <WebView
         android:id= "@+id/id_webview"
         android:layout_width= "match_parent"
         android:layout_height= "match_parent"
         android:scrollbars= "none"  />
 
</LinearLayout>

    效果图:PS:可以缩放,并且支持双击Max,支持脚本。

    wKiom1S4bOKwFBvrAAq1VzVSLKY496.gif    









本文转自 吴雨声 51CTO博客,原文链接:http://blog.51cto.com/liangxiao/1604052,如需转载请自行联系原作者
目录
相关文章
|
API Android开发 数据安全/隐私保护
解决android webview 加载http url 失败 net::ERR_CLEARTEXT_NOT_PERMITTED 错误
解决android webview 加载http url 失败 net::ERR_CLEARTEXT_NOT_PERMITTED 错误
900 0
|
11天前
|
程序员 开发工具 Android开发
Android|WebView 禁止长按,限制非白名单域名的跳转层级
如何限制 WebView 仅域名白名单网址能随意跳转,并禁用长按选择文字。
20 2
|
5月前
|
安全 JavaScript 前端开发
kotlin开发安卓app,JetPack Compose框架,给webview新增一个按钮,点击刷新网页
在Kotlin中开发Android应用,使用Jetpack Compose框架时,可以通过添加一个按钮到TopAppBar来实现WebView页面的刷新功能。按钮位于右上角,点击后调用`webViewState?.reload()`来刷新网页内容。以下是代码摘要:
|
5月前
|
JavaScript 前端开发 Android开发
kotlin安卓在Jetpack Compose 框架下使用webview , 网页中的JavaScript代码如何与native交互
在Jetpack Compose中使用Kotlin创建Webview组件,设置JavaScript交互:`@Composable`函数`ComposableWebView`加载网页并启用JavaScript。通过`addJavascriptInterface`添加`WebAppInterface`类,允许JavaScript调用Android方法如播放音频。当页面加载完成时,执行`onWebViewReady`回调。
|
4月前
|
Web App开发 JavaScript 前端开发
Android端使用WebView注入一段js代码实现js调用android
Android端使用WebView注入一段js代码实现js调用android
92 0
|
5月前
|
Web App开发 移动开发 前端开发
52. 【Android教程】网页视图:WebView
52. 【Android教程】网页视图:WebView
85 1
|
5月前
|
安全 网络安全 API
kotlin安卓开发JetPack Compose 如何使用webview 打开网页时给webview注入cookie
在Jetpack Compose中使用WebView需借助AndroidView。要注入Cookie,首先在`build.gradle`添加WebView依赖,如`androidx.webkit:webkit:1.4.0`。接着创建自定义`ComposableWebView`,通过`CookieManager`设置接受第三方Cookie并注入Cookie字符串。最后在Compose界面使用这个自定义组件加载URL。注意Android 9及以上版本可能需要在网络安全配置中允许第三方Cookie。
|
6月前
|
XML Android开发 数据格式
安卓和webview交互
安卓和webview交互
58 0
|
6月前
|
XML Android开发 数据格式
安卓和webview交互
安卓和webview交互
101 1
|
小程序 Android开发 iOS开发
在钉钉小程序中安卓无法打开webview
在钉钉小程序中安卓无法打开webview
195 1