1. 程式人生 > >android網頁調起app並且傳參, 網頁點選高速下載跳轉app

android網頁調起app並且傳參, 網頁點選高速下載跳轉app

我們有時候需要用到在自己的網站上點選高速下載,然後把引數傳到自己的app裡面進行下載。或者在別人的網站點選下載的時候調起我們的app作為下載器進行下載。那麼具體怎麼實現呢?我們分兩種情況:
一、自己的網站傳參到自己的app並且進行下載
    這種情況只需要約定一個共同的scheme便可以實現調起,比如載安卓端
<activity
android:name=".activities.WelcomeActivity"
android:screenOrientation="portrait"
android:theme="@style/SplashTheme"
android:exported=
"true"> <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.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="webinterface"/> </intent-filter> </activity>
     網頁端只需要添加個超連結<a href="[scheme]://[host]/[path]?[query]">啟動應用程式</a> ,scheme就是和安卓端一樣的標識,host和path可以隨便填。query就是網頁端要傳到app端的引數。比如我要傳的引數是 id = 1, name = "test"那麼網頁端的程式碼就是
<a href="webinterface://host/path?id = 1&name=test">啟動應用程式</a>
      安卓端的接收資料程式碼就是,在android:name=".activities.WelcomeActivity"這個activity裡面接收引數
    Uri uri = getIntent().getData();
    String id     = uri.getQueryParameter("id");
    Stirng name   = uri.getQueryParameter("name");
這樣第一種情況就完成了。
二、第二種情況,在別人的網站點選下載的時候調起我們的app作為下載器進行下載。
    這種情況下就不是自定義scheme標識了,有一個固定的標識
<data android:scheme="http"/>
<data android:scheme="https"/>
    新增方法同上,只是標識不一樣。接受引數也不一樣,這個時候安卓端的就收引數的方法是
    String url = getIntent().getData() + "";我們能接收到的只有一個網址