[Android] WebView
經歷了半年多的時間,終於告一個段落
新的工作也開始了~要好好努力囉!!!
最近在研究WEBVIEW,這邊大概對WEBVIEW做一點敘述......待續
=====================================
setUseWideViewPort() : 參數可設定true或是false,設定true時會將viewport的meta tag啟動,而meta tag又是甚麼呢?在W3C協議裡"This section is not normative.",並沒有強制規範,不過Android的API說明有提到"When the value is true and the page contains the viewport meta tag, the value of the width specified in the tag is used. If the page does not contain the tag or does not provide a width, then a wide viewport will be used." 如果我們沒有強制設定寬度,那麼就會使用可是範圍的最大視野,其意思就是螢幕的大小。
在用userAgent判斷使用者是電腦或是行動裝置觀看網頁這一篇
記錄了如何用navigator.userAgent去判斷是在行動裝置上觀看網頁還是用電腦看
但如果是要在android上判斷是在行動裝置上的瀏覽器看還是用應用程式裡面的webView看的話
就需要再webView上下一點工夫了
下面直接上code
之後在網頁上把UserAgent alert出來就可以看到剛剛新加入的字串了
再來就是作一樣的判斷
=====================================
Android : WebView 自適螢幕大小
讓WebView裡面的內容自動調成螢幕大小有以下兩種方法 :
第一種方法,啟動viewport的meta標籤:
WebView.getSettings().setUseWideViewPort(true);
WebView.getSettings().setLoadWithOverviewMode(true);
setUseWideViewPort() : 參數可設定true或是false,設定true時會將viewport的meta tag啟動,而meta tag又是甚麼呢?在W3C協議裡"This section is not normative.",並沒有強制規範,不過Android的API說明有提到"When the value is true and the page contains the viewport meta tag, the value of the width specified in the tag is used. If the page does not contain the tag or does not provide a width, then a wide viewport will be used." 如果我們沒有強制設定寬度,那麼就會使用可是範圍的最大視野,其意思就是螢幕的大小。
setLoadWithOverviewMode() : 參數值可設定true或是false,默認值是false,此參數值設定為true是為了當內容大於viewport時,系統將會自動縮小內容以適屏幕寬度.
=====================================
android-透過webView加上userAgent
在用userAgent判斷使用者是電腦或是行動裝置觀看網頁這一篇
記錄了如何用navigator.userAgent去判斷是在行動裝置上觀看網頁還是用電腦看
但如果是要在android上判斷是在行動裝置上的瀏覽器看還是用應用程式裡面的webView看的話
就需要再webView上下一點工夫了
下面直接上code
1
2
3
4
5
6
7
8
9
| WebVIew mWebView = new WebView(context); //先用webview的getSettings()取得webSettings再用getUserAgentString() //取得userAgent,這邊取出來的值會跟在網頁用js的navigator.userAgent取的 //值是一樣的 String userAgentStr = mWebView.getSettings().getUserAgentString(); //之後用setUserAgentString()設定新的userAgent //這邊設定新的UserAgent的時候用記得用舊的UserAgent去加入新的字串 //不然UserAgent的瀏覽器及系統訊息都會被你設定的新字串覆蓋過去 mWebView.getSettings().setUserAgentString(userAgentStr+ "/ON_WEBVIEW" ); |
之後在網頁上把UserAgent alert出來就可以看到剛剛新加入的字串了
1
| Mozilla/5.0 (Linux; U; Android 4.1.2; zh-tw; GT-P3100 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30/ON_WEBVIEW |
再來就是作一樣的判斷
1
2
3
4
| var userAgent = navigator.userAgent; if (/ON_WEBVIEW/i.test(userAgent)){ //是否在webview上面看 } |
=====================================
取當前國家
Android 抓取當前系統語言和國家
取當前語言
context.getResources().getConfiguration().locale.getLanguage()
取當前國家
context.getResources().getConfiguration().locale.getCountry()
留言
張貼留言