通過網頁開啟App並傳遞引數
阿新 • • 發佈:2019-01-23
如果想要從網頁中開啟App,只要在AndroidManifest.xml檔案中設定Activity的相關屬性則可,具體如下:
<activity
android:name=".StartActivity">
<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" />
<data android:scheme="weixin" android:host="gameforums" android:pathPrefix="/message"/>
</intent-filter>
</activity>
這裡想要注意的是,如果這個Activity同時也是App的啟動頁面的話,intent-filter不能同時放在一塊。
接下來就是在StartActivity裡面獲取資料了,獲取傳遞過來的引數程式碼如下:
Intent intent = getIntent();
String scheme = intent.getScheme();
Log.i(TAG, "scheme:" + scheme);
if (uri != null) {
String host = uri.getHost();
Log.i(TAG, "host:" +host);
String dataString = intent.getDataString();
Log.i(TAG, "dataString:" + dataString);
String param2 = uri.getQueryParameter("param2");
Log.i(TAG, "param2:" + param2);
String path = uri.getPath();
Log.i(TAG, "path:" + path);
String encodedPath = uri.getEncodedPath();
Log.i(TAG, "encodedPath:" + encodedPath);
String queryString = uri.getQuery();
}
接下來是測試,寫一個簡單的html來進行測試:
<a href="weixin://gameforums/message?param=456">開啟App</a>
測試結果如下圖: