Android 通过网络打开自己的APP(scheme)

时间:2024-04-29 10:03:18

通过使用手机的浏览器(内部。第三方能够)访问网页,点击一个链接,开始实施自己的应用程序,和传输数据。

第一Mainifest面对文件启动Activity添加过滤器。

<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);
} }
}

写一个最简单的网页:

<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:/test

queryString:p=12&d=1

p=238">http://www.erdian.net/?

p=238

版权声明:本文博客原创文章,博客,未经同意,不得转载。