編輯:關於Android編程
現在Android程序員是越來越多,甚至在部分地區出現供大於求的局面,從大背景來看,Android的生態鏈會漸漸的趨於理智,並且會不斷的更新人才以及開發工具,前幾年的eclipse異常火爆,現在Android studio憑借著良好的體驗,已經有越來越多的人轉戰到Android studio裡面進行開發,所以這也是一個多樣性的體現,廢話了這麼多,我想要表達的是,人多不是問題,重要的是自己有這個能力去勝任這份工作,不停的學習新技術,更新自己。
現在我們講講,怎麼在Html中打開手機裡面的APP,這個需求現在使用的也是越來越廣泛了,比如淘寶、支付寶的支付等等,都是使用到了這個功能,但是到底怎麼去實現呢,我這裡就使用webview來模擬這樣的一個功能,首先看看html裡面代碼:
<!DOCTYPE HTML> <html> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <body> <a href="xiaopinggaiblog://xiappinggai/open">打開app</a><br/> </body> </html>
對的,你沒有看錯,就這麼幾行代碼,沒有用到 js,也沒有使用到css,(/a)標簽是一個超鏈接標簽,這個相信有點基礎的人是看得懂的,重要的是看看這個超鏈接裡面的內容:xiaopinggaiblog://xiappinggai/open,這個是我自己自定義的,先看看我們要打開的應用程序的注冊文件裡面的寫法:
<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>
我這裡模擬的是打開另外一個程序的主界面,看到下面的一個意圖過濾器,這裡有一個< data/>標簽,這個標簽裡面的內容:
<data android:pathPrefix="/xiappinggai/open"
android:scheme="xiaopinggaiblog" />
PathPrefix屬性只指定了部分路徑,它會跟Intent對象中的路徑初始部分匹配。
scheme屬性用於設定URI的scheme部分。它是給指定URI設置的最基本的屬性,至少要給過濾器設置一個scheme屬性,否則,其他的URI屬性就沒有意義了。
這要這麼配置,那就可以完美的打開其他APP了,同時,有的浏覽器也支持這個功能,假如在測試的時候出現不能打開的情況,那麼可以考慮換一個浏覽器測試。
接下來,我們再看看怎麼傳數據到那個應用程序呢?其實也不難,只需要改一下url就行了:具體如下:
xiaopinggaiblog://xiappinggai/open?data=xiaopinggaiblog
如果要穿多個參數呢?其實也是可以的,可以用&符號去連接,這麼寫:
xiaopinggaiblog://xiappinggai/open?data=xiaopinggaiblog&arga=value
那麼在那個應用程序怎麼接收呢,其實也是幾行代碼的事,我們在要接收數據的Activity裡面這樣寫:
Uri uridata = this.getIntent().getData(); if (uridata!=null) { String mydata = uridata.getQueryParameter("data"); }
這樣寫就可以獲取到數據了,但是還有一個問題,當要打開的APP沒有安裝,那這個時候點擊打開APP會出現錯誤,這樣就很影響交互體驗了,因此我們可以這麼做:
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, "沒有這個APP", 0).show(); } });
這樣做就可以,這是在網頁加載失敗的時候執行的操作。我們除了可以這樣提示,我們也可以讓他跳轉到App的下載地址等一系列自己想要的操作。
好了,全部代碼都在這裡了。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
OpenglES2.0 for Android:各種變換來一波 監聽屏幕事件 在進行各種變換之前,我們先來了解一下如何監聽屏幕的事件。我們下面的變換都需要用立方體來演示,
導語 本文主要是圍繞android直播助手的功能做了一些研究,因為之前對Android多媒體相關的內容知之甚少,只有概念,於是查閱了相關資料並做以總結。由於我對音視頻相關
1、直接使用getWindow().getDecorView().getRootView()直接使用getWindow().getDecorView().getRootV
英文原文:Probably be the best way (?) to save/restore Android Fragment’s state so f