經過用手機的瀏覽器(內置,第三方均可)訪問一個網頁,實現點擊一個連接啓動本身的應用,並傳遞數據。html
首先在Mainifest文件裏面對要啓動的Activity添加一個過濾器。java
- <activity
- android:name="com.example.helloworld.MainActivity"
- android:label="@string/app_name" >
- <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="znn"/>
- </intent-filter>
- </activity>
在MainActivity接收數據:
- public class MainActivity extends Activity implements View.OnClickListener{
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- Intent intent = getIntent();
- String scheme = intent.getScheme();
- Uri uri = intent.getData();
- System.out.println("scheme:"+scheme);
- if (uri != null) {
- String host = uri.getHost();
- String dataString = intent.getDataString();
- String id = uri.getQueryParameter("d");
- String path = uri.getPath();
- String path1 = uri.getEncodedPath();
- String queryString = uri.getQuery();
- System.out.println("host:"+host);
- System.out.println("dataString:"+dataString);
- System.out.println("id:"+id);
- System.out.println("path:"+path);
- System.out.println("path1:"+path1);
- System.out.println("queryString:"+queryString);
- }
-
- }
- }
寫一個最簡單的網頁:android
- <a href="znn://aa.bb:80/test?p=12&d=1">test</a>
測試地址:
www.erdian.net/m.html
測試結果:瀏覽器
scheme:znn
host:aa.bb
dataString:znn://aa.bb:80/test?p=12&id=1
id:1
path:/test
path1:/testapp
queryString:p=12&d=1ide
http://www.erdian.net/?p=238post
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。測試