Android操作Html打開(kāi)其他APP
現(xiàn)在Android程序員是越來(lái)越多,甚至在部分地區(qū)出現(xiàn)供大于求的局面,從大背景來(lái)看,Android的生態(tài)鏈會(huì)漸漸的趨于理智,并且會(huì)不斷的更新人才以及開(kāi)發(fā)工具,前幾年的eclipse異?;鸨?,現(xiàn)在Android studio憑借著良好的體驗(yàn),已經(jīng)有越來(lái)越多的人轉(zhuǎn)戰(zhàn)到Android studio里面進(jìn)行開(kāi)發(fā),所以這也是一個(gè)多樣性的體現(xiàn),廢話了這么多,我想要表達(dá)的是,人多不是問(wèn)題,重要的是自己有這個(gè)能力去勝任這份工作,不停的學(xué)習(xí)新技術(shù),更新自己。
現(xiàn)在我們講講,怎么在Html中打開(kāi)手機(jī)里面的APP,這個(gè)需求現(xiàn)在使用的也是越來(lái)越廣泛了,比如淘寶、支付寶的支付等等,都是使用到了這個(gè)功能,但是到底怎么去實(shí)現(xiàn)呢,我這里就使用webview來(lái)模擬這樣的一個(gè)功能,首先看看html里面代碼:
<!DOCTYPE HTML> <html> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <body> <a href="xiaopinggaiblog://xiappinggai/open">打開(kāi)app</a><br/> </body> </html>
對(duì)的,你沒(méi)有看錯(cuò),就這么幾行代碼,沒(méi)有用到 js,也沒(méi)有使用到css,(/a)標(biāo)簽是一個(gè)超鏈接標(biāo)簽,這個(gè)相信有點(diǎn)基礎(chǔ)的人是看得懂的,重要的是看看這個(gè)超鏈接里面的內(nèi)容:xiaopinggaiblog://xiappinggai/open,這個(gè)是我自己自定義的,先看看我們要打開(kāi)的應(yīng)用程序的注冊(cè)文件里面的寫(xiě)法:
<activity android:name=".MainActivity" android:excludeFromRecents="true" android:label="@string/app_name" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:pathPrefix="/xiappinggai/open" android:scheme="xiaopinggaiblog" /> </intent-filter> </activity>
我這里模擬的是打開(kāi)另外一個(gè)程序的主界面,看到下面的一個(gè)意圖過(guò)濾器,這里有一個(gè)< data/>標(biāo)簽,這個(gè)標(biāo)簽里面的內(nèi)容:
<data android:pathPrefix="/xiappinggai/open"
android:scheme="xiaopinggaiblog" />
PathPrefix屬性只指定了部分路徑,它會(huì)跟Intent對(duì)象中的路徑初始部分匹配。
scheme屬性用于設(shè)定URI的scheme部分。它是給指定URI設(shè)置的最基本的屬性,至少要給過(guò)濾器設(shè)置一個(gè)scheme屬性,否則,其他的URI屬性就沒(méi)有意義了。
這要這么配置,那就可以完美的打開(kāi)其他APP了,同時(shí),有的瀏覽器也支持這個(gè)功能,假如在測(cè)試的時(shí)候出現(xiàn)不能打開(kāi)的情況,那么可以考慮換一個(gè)瀏覽器測(cè)試。
接下來(lái),我們?cè)倏纯丛趺磦鲾?shù)據(jù)到那個(gè)應(yīng)用程序呢?其實(shí)也不難,只需要改一下url就行了:具體如下:
xiaopinggaiblog://xiappinggai/open?data=xiaopinggaiblog
如果要穿多個(gè)參數(shù)呢?其實(shí)也是可以的,可以用&符號(hào)去連接,這么寫(xiě):
xiaopinggaiblog://xiappinggai/open?data=xiaopinggaiblog&arga=value
那么在那個(gè)應(yīng)用程序怎么接收呢,其實(shí)也是幾行代碼的事,我們?cè)谝邮諗?shù)據(jù)的Activity里面這樣寫(xiě):
Uri uridata = this.getIntent().getData(); if (uridata!=null) { String mydata = uridata.getQueryParameter("data"); }
這樣寫(xiě)就可以獲取到數(shù)據(jù)了,但是還有一個(gè)問(wèn)題,當(dāng)要打開(kāi)的APP沒(méi)有安裝,那這個(gè)時(shí)候點(diǎn)擊打開(kāi)APP會(huì)出現(xiàn)錯(cuò)誤,這樣就很影響交互體驗(yàn)了,因此我們可以這么做:
mWeb.setWebViewClient(new WebViewClient(){ @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { mWeb.loadUrl("file:///android_asset/html2.html"); Toast.makeText(MainActivity.this, "沒(méi)有這個(gè)APP", 0).show(); } });
這樣做就可以,這是在網(wǎng)頁(yè)加載失敗的時(shí)候執(zhí)行的操作。我們除了可以這樣提示,我們也可以讓他跳轉(zhuǎn)到App的下載地址等一系列自己想要的操作。
好了,全部代碼都在這里了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android-App增量更新的使用姿勢(shì)
- Android如何實(shí)現(xiàn)APP自動(dòng)更新
- 詳解Android冷啟動(dòng)實(shí)現(xiàn)APP秒開(kāi)的方法
- Android判斷當(dāng)前App是在前臺(tái)還是在后臺(tái)
- Android實(shí)現(xiàn)APP歡迎頁(yè)面簡(jiǎn)單制作思路
- 總結(jié)Android App內(nèi)存優(yōu)化之圖片優(yōu)化
- Android學(xué)習(xí)之AppWidget高級(jí)效果
- 安卓(Android)開(kāi)發(fā)之統(tǒng)計(jì)App啟動(dòng)時(shí)間
- Android App增量更新詳解及實(shí)例代碼
相關(guān)文章
Android Handler實(shí)現(xiàn)閃屏頁(yè)倒計(jì)時(shí)代碼
這篇文章主要介紹了Android Handler實(shí)現(xiàn)閃屏頁(yè)倒計(jì)時(shí)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08android實(shí)現(xiàn)點(diǎn)擊圖片全屏展示效果
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)點(diǎn)擊圖片全屏展示效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08Android在類微信程序中實(shí)現(xiàn)藍(lán)牙聊天功能的示例代碼
這篇文章主要介紹了Android在類微信程序中實(shí)現(xiàn)藍(lán)牙聊天功能,本文通過(guò)實(shí)例代碼給大家介紹的非常想詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Android開(kāi)發(fā)中畫(huà)廊視圖Gallery的兩種使用方法分析
這篇文章主要介紹了Android開(kāi)發(fā)中畫(huà)廊視圖Gallery的兩種使用方法,結(jié)合實(shí)例形式分析了Android畫(huà)廊視圖Gallery的簡(jiǎn)單布局與功能實(shí)現(xiàn)相關(guān)操作技巧,需要的朋友可以參考下2018-01-01ERROR/AndroidRuntime(17121)的問(wèn)題解決
ERROR/AndroidRuntime(17121)的問(wèn)題解決,需要的朋友可以參考一下2013-05-05TableLayout(表格布局)基礎(chǔ)知識(shí)點(diǎn)詳解
在本文里我們給大家分享了關(guān)于TableLayout(表格布局)的相關(guān)基礎(chǔ)知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。2019-02-02android Bitmap圓角與倒影的具體實(shí)現(xiàn)代碼
android Bitmap圓角與倒影的具體實(shí)現(xiàn)代碼,需要的朋友可以參考一下2013-06-06Android 通過(guò)Base64上傳圖片到服務(wù)器實(shí)現(xiàn)實(shí)例
這篇文章主要介紹了Android 通過(guò)Base64上傳圖片到服務(wù)器實(shí)現(xiàn)實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-05-05