精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Android:輕松獲取WebView的內容寬度(贈源代碼)

移動開發 Android
Android開發時,從WebView,我不但想要知道ContentHeight,還想知道ContentWidth。不幸的是,從一個WebView獲取contentWidth是相當困難,因為SDK中沒有一個像這樣的方法,所以本文為大家呈現了一種實用的解決此問題的方法。

The extensive Android SDK allows you to do many great things with particular views like the WebView for displaying webpages on Android powered devices.

Android SDK 的擴展,通過使用特定的view,允許你做許多事情。比如,WebView,用來在Android手機上展示網頁。

 

As of lately while I was experimenting with the Android SDK I was using a WebView in one of my activities.

最近,我在體驗Android SDK的時候,在一個Activity中用到了WebView。

From that particular WebView I needed to know the ContentHeight but also the ContentWidth.

從WebView,我不但想要知道ContentHeight,還想知道ContentWidth。

Now getting the contentHeight is easy like so:

現在的情況是:獲取contentHeight很easy,如下:

  1. webview.getContentHeight(); 

Unfortunately getting the contentWidth from a WebView is rather more difficult, since there is not a simple method like:

不幸的是,從一個WebView獲取contentWidth是相當困難,因為SDK中沒有一個像這樣的方法:

  1. // THIS METHOD DOES NOT EXIST! 
  2.     webview.getContentWidth(); 

There are ways to get the contentWidth of the rendered HTML page and that is through Javascript. If Javascript can get it for you, then you can also have them in your Java code within your Android App.

當然是有方法獲取contentWidth的,就是通過Javascript來獲取。如果你能夠支持Javascript,那么你就可以在你的Android 程序中,使用java代碼來獲取寬度。

By using a JavascriptInterface with your WebView you can let Javascript communicate with your Android App Java code by invoking methods on a registered object that you can embed using the JavascriptInterface.

通過在你的WebView中使用JavascriptInterface,通過調用你注冊的JavascriptInterface方法,可以讓Javascript和你的Android程序的java代碼相互連通。

So how does this work?

怎么做呢?

For a quick example I created a simple Activity displaying a webview that loads a webpage wich displays a log message and a Toast message with the contentWidth wich was determined using Javascript. Note that this happens AFTER the page was finished loading, because before the page is finished loading the width might not be fully rendered. Also keep in mind that if there is content loaded asynchronously that it doesn't affect widths (most likely only heights will be affected as the width is almost always fully declared in CSS files unless you have a 100% width webpage).

搭建一個快速的例子:創建一個簡單的展示webView的Activity,一個LogCat消息,一個Toast消息,用來顯示我們通過 Javascript獲取的寬度。注意:這些會在網頁完全加載之后顯示,因為在網頁加載完成之前,寬度可能不能夠正確的獲取到。同時也要注意到,如果是異 步加載,這并不影響寬度(最多高度會受影響,因為寬度總是在CSS文件中做了完全的定義,除非在網頁中你用了100%寬度。)。

Below is the code of the Activity Main.java:

下面的代碼是Activity的代碼:

  1. 01  package com.pimmos.android.samples.webviewcontentwidth;   
  2. 02  import android.app.Activity; 
  3. 03  import android.os.Bundle; 
  4. 04  import android.util.Log; 
  5. 05  import android.webkit.WebView; 
  6. 06  import android.webkit.WebViewClient; 
  7. 07  import android.widget.Toast;   
  8. 08  public class Main extends Activity {       
  9. 09      private final static String LOG_TAG = "WebViewContentWidth"
  10. 10      private final Activity activity = this;   
  11. 11      private static int webviewContentWidth = 0
  12. 12      private static WebView webview;       
  13. 13    
  14. 14  /** Called when the activity is first created. */ 
  15. 15      @Override 
  16. 16      public void onCreate(Bundle savedInstanceState) { 
  17. 17           super.onCreate(savedInstanceState); 
  18. 18           setContentView(R.layout.main);   
  19. 19           webview = (WebView) findViewById(R.id.webview); 
  20. 20           webview.getSettings().setJavaScriptEnabled(true); 
  21. 21           webview.setSaveEnabled(true); 
  22. 22           webview.addJavascriptInterface(new JavaScriptInterface(), "HTMLOUT"); 
  23. 23           webview.setWebViewClient(new WebViewClient() { 
  24. 24               @Override 
  25. 25              public void onPageFinished(WebView view, String url) { 
  26. 26                   webview.loadUrl("javascript:window.HTMLOUT.getContentWidth(document.getElementsByTagName('html')[0].scrollWidth);"); 
  27. 27               } 
  28. 28           }); 
  29. 29           webview.loadUrl("http://www.pimmos.com/"); 
  30. 30       } 
  31. 31    
  32. 32       class JavaScriptInterface { 
  33. 33           public void getContentWidth(String value) { 
  34. 34               if (value != null) { 
  35. 35                   webviewContentWidth = Integer.parseInt(value); 
  36. 36                   Log.d(LOG_TAG, "Result from javascript: " + webviewContentWidth); 
  37. 37                   Toast.makeText(                         activity, 
  38. 38                           "ContentWidth of webpage is: " + 
  39. 39  webviewContentWidth                                 + 
  40. 40  "px", Toast.LENGTH_SHORT).show(); 
  41. 41               } 
  42. 42           } 
  43. 43       } 
  44. 44  } 

Below is the XML layout used with the Activity wich only contains a simple WebView:

下面是Activity的Layout,主要就是一個簡單的WebView:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.     <LinearLayout 
  3.        xmlns:android="http://schemas.android.com/apk/res/android"    
  4.        android:orientation="vertical" 
  5.        android:layout_width="fill_parent"    
  6.        android:layout_height="fill_parent"
  7.        <WebView android:id="@+id/webview" 
  8.             android:layout_width="fill_parent" 
  9.             android:layout_height="fill_parent" /> 
  10.      </LinearLayout> 

AndroidManifest.xml layout:

AndroidManifest.xml代碼:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.     <manifest 
  3.      xmlns:android="http://schemas.android.com/apk/res/android" 
  4.         package="com.pimmos.android.samples.webviewcontentwidth" 
  5.         android:versionCode="1" android:versionName="1.0"
  6.          <application android:icon="@drawable/icon" 
  7.      android:label="@string/app_name"
  8.              <activity android:name=".Main" 
  9.      android:label="@string/app_name"
  10.                  <intent-filter> 
  11.                      <action android:name="android.intent.action.MAIN" /> 
  12.                      <category 
  13.     android:name="android.intent.category.LAUNCHER" /> 
  14.                  </intent-filter> 
  15.              </activity> 
  16.            </application> 
  17.          <uses-sdk android:minSdkVersion="7" /> 
  18.          <uses-permission android:name="android.permission.INTERNET" /> 
  19.        </manifest> 

You can also download the full source of Android Application - WebViewContentWidth!

你也可以到這里下載全部的源代碼:  

http://down.51cto.com/data/795941

責任編輯:閆佳明 來源: oschina
相關推薦

2009-04-03 08:28:39

2020-11-12 11:50:20

OpenHarmony

2011-05-26 14:17:16

Android 源代碼

2010-10-09 11:01:31

JS

2010-03-02 10:08:28

Android源代碼

2011-11-15 10:16:41

Android 4.0Google

2013-03-26 13:42:12

Android 監聽網

2010-02-05 18:00:18

Android源代碼

2014-11-06 09:31:20

Android 5.0Google

2010-02-04 10:58:29

Android 源代碼

2017-09-18 22:55:46

GoogleAndroidRTDB

2017-04-25 12:07:51

AndroidWebViewjs

2014-07-30 14:22:41

AndroidWebView內存泄漏

2010-03-08 15:57:27

2015-01-12 10:06:02

在線客服

2015-03-03 15:53:31

Android控件

2013-07-03 16:49:17

AndroidWebView

2015-10-08 09:03:18

Android6.0源代碼

2011-10-21 09:24:13

谷歌Android 4.0源代碼

2022-01-09 20:26:14

Flink源代碼編譯
點贊
收藏

51CTO技術棧公眾號

欧美三级美国一级| 欧美一级鲁丝片| 国产精品资源网| 欧美精品久久久久| 国产精品三级在线观看无码| 日本另类视频| 夜夜爽夜夜爽精品视频| 欧美日本亚洲| 99热这里只有精品99| 夜夜嗨av一区二区三区网站四季av| 亚洲欧美国产高清va在线播| 亚洲欧美日韩一二三区| 国产资源在线观看入口av| 国产精品乱码久久久久久| 国产女主播一区二区| 中文字幕观看在线| 性欧美xxxx大乳国产app| 精品国模在线视频| 亚洲区自拍偷拍| 91蝌蚪精品视频| 欧美日本乱大交xxxxx| 男人日女人下面视频| 超碰在线网址| 国产欧美一区二区精品性色 | 精品久久久久久亚洲综合网站| 亚洲不卡视频在线观看| 国产精品久久久久久久久久白浆| 欧美性色欧美a在线播放| 黄色片网址在线观看| yellow91字幕网在线| 日本一区二区三区四区在线视频 | 男女视频在线看| 日韩精品极品| 亚洲成av人在线观看| 日韩精品一区二区三区电影| 香蕉视频在线免费看| 91麻豆免费看| 精品国产一区二区三| 亚洲精华国产精华精华液网站| 麻豆精品一区二区综合av| 国产成人中文字幕| 人妻丰满熟妇av无码区| 国产精品久久国产愉拍| 97福利一区二区| 国产亚洲精品久久777777| 午夜欧美理论片| 理论片在线不卡免费观看| 日韩三级久久久| 欧美国产美女| 日韩中文字幕久久| www.xx日本| 国产精品精品国产一区二区| 综合网日日天干夜夜久久| 欧美黄色高清视频| 久久国产亚洲| 久久久精品一区| 日本精品在线免费观看| 亚洲综合专区| 色综合久久中文字幕综合网小说| 欧美交换国产一区内射| 欧美人与禽猛交乱配视频| 欧美—级高清免费播放| 精品无码人妻一区二区三区| 亚洲第一精品影视| 8050国产精品久久久久久| 99热在线观看免费精品| 亚洲欧美日本国产专区一区| 91精品国产综合久久久久久| 欧美亚洲成人免费| 欧美又粗又大又长| 亚洲二区视频| 欧洲永久精品大片ww免费漫画| 国产成人无码一区二区在线播放| 爽好多水快深点欧美视频| 国产精品你懂得| 在线观看黄色国产| 国产久卡久卡久卡久卡视频精品| wwwxx欧美| 免费在线观看污视频| 中文字幕精品一区二区精品绿巨人 | 日韩精品久久久久久久电影99爱| 蜜臀精品一区二区三区在线观看| 欧美激情亚洲激情| av黄色在线看| 久久精品99国产精品日本| 成人妇女免费播放久久久| av天堂一区二区三区| 成人午夜大片免费观看| 欧美一级爽aaaaa大片| 乱人伦中文视频在线| 亚洲欧美日韩在线| 欧美s码亚洲码精品m码| 日本午夜免费一区二区| 精品国产乱码久久久久久闺蜜| www.久久国产| 亚洲欧洲日韩| 日韩美女av在线免费观看| 国产孕妇孕交大片孕| yourporn久久国产精品| 亚洲欧美国产精品桃花| 国产丝袜在线观看视频| 欧美性高清videossexo| 亚洲香蕉中文网| 日韩大片在线观看| 欧美国产日本高清在线 | 欧美亚洲视频| 91成人伦理在线电影| 日本1级在线| 亚洲一区二区精品3399| 亚洲欧美aaa| 91xxx在线观看| 手机在线电影一区| 久久精品国产免费观看| 国产成人无码av| 成人午夜av在线| 综合久久国产| 99只有精品| 亚洲欧美变态国产另类| 久久国产免费观看| 国产在线精品一区二区夜色| 日韩精品伦理第一区| av丝袜在线| 日韩午夜中文字幕| 欧美一区二区三区粗大| 性色一区二区三区| 精品久久sese| 久草在线新免费首页资源站| 欧美电影一区二区| 91视频免费在观看| 丝袜美腿成人在线| 鲁丝一区鲁丝二区鲁丝三区| 精灵使的剑舞无删减版在线观看| 欧美精品自拍偷拍| 国产免费嫩草影院| 日韩高清一级片| 日韩国产一区久久| 日韩在线影院| 亚洲免费一在线| 日本中文字幕第一页| 91香蕉视频mp4| 男人添女人下面高潮视频| 久久99精品久久久久久欧洲站| 欧美大奶子在线| 99久久久久成人国产免费| 亚洲同性同志一二三专区| 中文字幕22页| 午夜av一区| 亚洲精品免费在线视频| 2024最新电影在线免费观看| 3751色影院一区二区三区| 日本黄色录像视频| 国产美女精品在线| 久久久久久久9| 成人直播在线观看| 91精品国产网站| 日本一卡二卡四卡精品| 91国内精品野花午夜精品| 蜜桃无码一区二区三区| 日韩在线一二三区| 亚洲一区二区三区午夜| 国产成人视屏| 久久中文视频| 热99在线视频| 国产精品四虎| 欧美另类videos死尸| 国产少妇在线观看| 成人黄色777网| 欧美亚洲一二三区| 成人羞羞动漫| 亚洲综合日韩在线| 乱人伦视频在线| 亚洲天堂av综合网| 99产精品成人啪免费网站| 亚洲最大成人综合| 日本少妇高潮喷水xxxxxxx| 久国产精品韩国三级视频| 欧美大黑帍在线播放| 欧美爱爱网站| 国产综合香蕉五月婷在线| 亚洲国产精品精华素| 亚洲精品少妇网址| 国产欧美一级片| 天天亚洲美女在线视频| 美国精品一区二区| 成人午夜激情在线| 四季av一区二区| 欧美天天在线| 视频一区视频二区视频| 亚洲成人影音| 国产精品2018| 三级福利片在线观看| 亚洲人成电影网站色| 99在线观看免费| 色天天综合色天天久久| 欧美成人精品欧美一级私黄| 久久色在线观看| 下面一进一出好爽视频| 老牛国产精品一区的观看方式| 日韩视频一二三| 国产精品午夜一区二区三区| 99re6在线| 欧美xnxx| 青青青国产精品一区二区| 国产日产一区二区三区| 国产小视频91| 日韩一级片免费看| 欧美精品久久99| 黄色av一级片| 亚洲成人免费视频| 污污的视频在线免费观看| 久久久久国产精品麻豆| 人妻 日韩 欧美 综合 制服| 麻豆成人免费电影| 成人一级片网站| 亚洲国产导航| 欧美成人性色生活仑片| 日本精品人妻无码77777| 久久精品视频一区二区| xxxx黄色片| 国产成人精品www牛牛影视| 中文字幕国产传媒| 欧美一级播放| 男人日女人逼逼| 黑丝一区二区| 成年在线观看视频| 婷婷成人基地| 中文字幕在线观看一区二区三区| 国产一区二区精品久| 久久国产精品免费一区| 精品人人人人| 国产精品yjizz| 一区视频网站| 99热在线国产| 亚洲综合网狠久久| 岛国视频一区| 日韩欧洲国产| 国产高清一区二区三区| 视频精品一区二区三区| 99国产高清| 9999久久久久| 黑人另类av| 老司机aⅴ在线精品导航| 国产精品一区二区三区观看| 99精品中文字幕在线不卡| 亚洲综合精品伊人久久| 1313精品午夜理伦电影| julia一区二区中文久久94| 中文字幕一区二区三区四区久久 | 日韩欧美视频专区| 亚洲欧美国产不卡| 99成人在线视频| 中国 免费 av| 国产精品激情| 精品无码一区二区三区在线| 国产日产高清欧美一区二区三区| 免费欧美一级视频| 麻豆成人精品| 日韩av片网站| 免费高清在线视频一区·| 污视频网址在线观看| 国产精品99久久久| av在线播放网址| 91麻豆福利精品推荐| 韩国女同性做爰三级| 国产精品久久久久永久免费观看| 永久免费观看片现看| 亚洲激情自拍偷拍| 久久国产精品系列| 在线观看视频欧美| 国产视频在线观看免费| 另类欧美日韩国产在线| 亚洲xxxxx| 伊色综合久久之综合久久| 国产亚洲第一区| 欧美日韩有码| 天堂а√在线中文在线 | 久久久久在线观看| 桃子视频成人app| 91香蕉嫩草影院入口| 久久91在线| 一本一本久久a久久精品综合妖精| 欧美/亚洲一区| 国产免费一区二区三区视频| 视频一区二区不卡| 永久免费看片在线观看| 91美女视频网站| 久久免费看少妇高潮v片特黄| 黄网动漫久久久| 国产又粗又黄视频| 精品国产亚洲在线| a天堂在线资源| 久久99热这里只有精品国产| 不卡av影片| 91视频免费在线观看| 国产在视频线精品视频www666| 三级在线免费观看| 美女视频一区免费观看| 欧美在线a视频| 国产日产欧美一区二区三区| 久操免费在线视频| 欧美午夜一区二区三区| 深夜福利视频网站| www.亚洲人.com| 日本韩国欧美| 超碰在线97av| 久久视频国产| 久久精品网站视频| 99久久精品99国产精品| 青青操国产视频| 欧美日韩黄色影视| 国产视频精选在线| 97超碰国产精品女人人人爽 | 日韩精品无码一区二区三区| 国内久久视频| 午夜免费视频网站| 国产精品欧美久久久久无广告| 羞羞影院体验区| 欧美大片一区二区三区| 久做在线视频免费观看| 国产精品www网站| 日韩三级av| 欧美成人精品免费| 国产精品99久久久久久有的能看| 中文字幕第24页| 日韩欧美在线一区| 视频污在线观看| 欧美激情第6页| 亚洲**毛片| 国产欧美123| 国产成人av一区二区三区在线观看| 欧美极品jizzhd欧美18| 国产一区二区高清| 亚洲综合在线小说| 精品国产18久久久久久洗澡| 激情视频小说图片| 国产美女一区二区| 国精品无码一区二区三区| 欧美日韩一区二区三区四区| 国产大片在线免费观看| 日韩av电影在线网| 你懂的视频欧美| 青青青在线播放| 久久久久久97三级| 亚洲日本视频在线观看| 亚洲精品理论电影| 精精国产xxxx视频在线播放| 精品视频免费观看| 国产日韩一区| 97人妻精品一区二区免费| 日韩欧美在线国产| 成人激情电影在线看| 国产精品人成电影| 91亚洲国产高清| 91蝌蚪视频在线| 亚洲午夜久久久久久久久电影院| 亚洲第一视频在线播放| 久久久噜久噜久久综合| 天堂在线精品| www.99在线| 亚洲男人电影天堂| 亚洲国产精品久久久久久6q| 97福利一区二区| 国产一区二区在线| 亚洲天堂av一区二区三区| 亚洲精品久久久蜜桃| 无码国精品一区二区免费蜜桃 | 欧美成人app| 一区不卡视频| 成人一级黄色片| 亚洲无码精品一区二区三区| 中文字幕亚洲色图| 99re91这里只有精品| 日日摸日日碰夜夜爽av| 中文字幕第一区第二区| 精品国产av一区二区| 97视频在线观看免费高清完整版在线观看 | 日韩网站在线看片你懂的| √8天堂资源地址中文在线| 欧美久久久久久| 久久99热99| 日韩av在线天堂| 一区二区三欧美| 欧美a在线观看| 激情婷婷综合网| 一区二区三区中文免费| 三级理论午夜在线观看| 国产日韩欧美在线视频观看| 欧美精品入口| 国产视频不卡在线| 欧美精品一区二区高清在线观看| 朝桐光一区二区| 美女黄色免费看| 中文字幕乱码日本亚洲一区二区| 国产自产一区二区| 国产女人精品视频| 国产亚洲精品自拍| 午夜爽爽爽男女免费观看| 日韩www在线| 天堂精品久久久久| 国产区二区三区|