2009年12月8日 星期二

Android 上如何在瀏覽器上自定義自已的連結,以用來開啟自已的軟體

當使用瀏覽器瀏覽網頁的時候,我們點擊一個連接的時候,想要開啟自已的軟體來接手處理這個連結時,整個流程會變成下面:
原本流程:
1.使用者在當前頁面點擊連結後
2.瀏覽器會獲取新的URL
3.瀏覽器會轉到新的URL。現在,假設我們有一個自已寫的程式,希望改變上面流程中的3,變成:
3.瀏覽器告知自已寫的程式
4.自已寫的程式接手處理URL

修改後,完整的流程就變成了:
1.使用者在當前頁面點擊連結
2.瀏覽器獲取新的URL
3.瀏覽器告知自已寫的程式
4.自已寫的程式接手處理URL

應用Android sdk中的intent-fiter,我們能夠實現上面的流程。

代碼一:
Xml代碼
1.<activity android:name=".Downloader" android:theme="@android:style/Theme.Dialog" android:configChanges="orientation|keyboardHidden">
2. <intent-filter>
3. <action android:name="android.intent.action.VIEW">
4. <category android:name="android.intent.category.DEFAULT">
5. <category android:name="android.intent.category.BROWSABLE">
6. <data android:scheme="Kuan">
7. <data android:host="*">
8. </intent-filter>
9.</activity>
10.</application>

ps: < > 這個是全形,使用時請記得改成半形的。

代碼二:
Java代碼
1. public class Downloader extends Activity {
2. public void onCreate(Bundle savedInstanceState) {
3. super.onCreate(savedInstanceState);
4. final Intent intent = getIntent();
5. final Uri uri = intent.getData();
6. //uri 就是傳來的uri。這裡可以加入對傳入的uri的處理。
7. }
8. }

代碼一創建了一個Activity,intent-filter設置說明,如果瀏覽器瀏覽到開頭是Kuan開頭的連結,就調用Downloader Activity。在代碼二中,我們通過intent.getData獲取瀏覽器要訪問的uri.接下來,系統可以對uri進行處理了。

沒有留言:

張貼留言