當前位置:首頁 » 安卓系統 » androidurl中文

androidurl中文

發布時間: 2025-09-25 15:02:09

① Android 跨應用間調用: URL Scheme

Android中的自定義的 URL Scheme 是一種頁面內跳轉協議,也可以被稱為 URLRouter ,就是通過類似打開網頁的方式去通過路由打開一個Activity,而非直接通過顯式Intent方式去進行跳轉。這樣隱式intent的方法跳轉好處如下:

上文已經說過, URL Scheme 是就通過類似打開網頁的方式去通過路由打開一個Activity,其協議格式和我們打開網頁輸入的網址類似。

一個完整的完整的URL Scheme協議格式由scheme、host、port、path和query組成,其結構如下所示:

其中scheme既可以是Android中常見的協議,也可以是我們自定義的協議。Android中常見的協議包括content協議、http協議、file協議等,自定義協議可以使用自定義的字元串,當我們啟動第三方的應用時候,多是使用自定義協議。

如下是一個自定義協議的URI:

通過上面的路徑 Scheme、Host、port、path、query全部包含:

URL Scheme 的使用方法簡要言之就是先在manifest中配置能接受Scheme方式啟動的activity;當需要調用時,將Scheme協議的URi以Data的形式加入到Intent中,隱式調用該activity。

1). 在AndroidManifest.xml中對<activity >標簽增加<intent-filter>設置Scheme

上面的設置中可以看到,MainActivity包含多個<intent-filter>設置,第一個是正常的啟動,也就是在應用列表中啟動;第二個是通過 URL Scheme 方式啟動,其本身也是隱式Intent調用的一種,不同在於添加了<data>屬性,定義了其接受 URL Scheme 協議格式為 urlschemel://auth_activity

這里需要說明下, URL Scheme 協議格式中,組成URI的這些屬性在<data >標簽中都是可選的 ,但存在如下的依賴關系:

當我們將intent對象中的Uri參數與intent-filter中的<data>標簽指定的URI格式進行對比時,我們只對比intent-filter的<data>標簽指定的部分,例如:

需要注意的是,intent-filter的<data>標簽在指定path的值時,可以在裡面使用通配符*,起到部分匹配的效果。

2). 使用URL啟動Activity

當然可以在網頁中調用

或者是在JS中調用

3.)如何判斷URL Scheme是否有效

有時候需要把一些輔助性的、較為獨立的APP在Home Launcher中隱藏起來,只允許一些特定的APP調用。這個時候,我們可以利用 URL Scheme 協議來做到這一點,設置AndroidManifest.xml中對<activity >標簽如下

因為Home Launcher列出的應用圖標要求必須有Activity同時滿足

上面的配置中有多餘的category和data限制存在,所以並不匹配,不會在Home Launcher出現,但是可以使用 URL Scheme 來啟動。

這樣就可以將一組APP設置一個統一的入口,然後根據實際需要在調用不同子APP,即所謂的 APP業務組件化 , URL Scheme 在其中有著重要的作用,更進一步討論會在以後的文章中呈現,敬請期待。

參考文獻:
http://blog.csdn.net/iispring/article/details/48481793
http://blog.csdn.net/hb707934728/article/details/53196419
http://www.cnblogs.com/whoislcj/p/5825333.html

② 如何解決Android WebView出現的亂碼問題

1、webView.loadUrl();
直接顯示網頁內容(單獨顯示網路圖片),一般不會出現亂碼。
2、webView.loadData(data, "text/html", "UTF-8");
loadData主要被設計用來裝載URI格式的數據,它不能通過網路來載入內容。網上流傳的webview載入中文出現亂碼,多數是使用此方法。使用過程中主要有兩個問題:
(1)loadData不能載入圖片內容,如果想載入圖片內容或者獲得更強大的Web支持建議使用更強大的loadDataWithBaseURL.
(2) 許多實用loadData方法的朋友都遇到顯示亂碼的問題,那是因為編碼器設置錯誤導致的。我們知道String類型的數銷鎮據主要是unicode編碼,而WebView一般為了節省資源使用的是UTF-8編碼,所以我們在loadData的時候要告訴方法怎樣轉碼。即要告訴它要將unicode編碼的內容轉成UTF-8編碼的內容。有些朋友雖然在loadData的時候設置了編碼方式,但是還是顯示亂碼,這是因虧消粗為還需要為WebView的text編碼指定編碼方式。舉例如下:
WebView wv = (WebView)findViewById(R.id.webview) ;
wv.getSettings().setDefaultTextEncodingName(「UTF -8」) ;
wv.loadData(content, 「text/html」橋碰, 「UTF-8」) ;
注意為gb2312或gbk
(3).網頁說明編碼格式
以上兩種方法是網上給的比較好的方法,但是我都試了下都沒有解決我的亂碼問題。 原來我是用LoadData方法來解析html的,但是據說這是官方的一個BUG,不能用來解析中文。所以繞其道而行之,採用loadDataWithBaseURL的方法,其中codeingType設置為utf-8就OK了。3、loadDataWithBaseURL如果單純顯示文字的話可以寫webView.loadDataWithBaseURL(null, string, "text/html", "utf-8", null);
如果要顯示圖片可以寫webView.loadDataWithBaseURL(baseUrl, string, "text/html", "utf-8", null);
其中baseUrl為你存儲照片的路徑,比如:

熱點內容
人機對話編程 發布:2025-09-25 16:46:33 瀏覽:183
槍林彈雨腳本 發布:2025-09-25 16:44:51 瀏覽:925
280php 發布:2025-09-25 16:04:24 瀏覽:978
c遞歸遍歷文件夾 發布:2025-09-25 16:04:16 瀏覽:711
哪個變數不編譯 發布:2025-09-25 15:44:58 瀏覽:113
酷我暢聽緩存位置 發布:2025-09-25 15:39:01 瀏覽:175
python後台開發 發布:2025-09-25 15:38:59 瀏覽:225
海康伺服器地址是多少啊 發布:2025-09-25 15:15:59 瀏覽:618
androidurl中文 發布:2025-09-25 15:02:09 瀏覽:535
iphone文件夾安裝目錄 發布:2025-09-25 14:54:26 瀏覽:469