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

通过用手机的浏览器(内置,第三方都可)访问一个网页,实现点击一个链接启动自己的应用,并传递数据。

首先在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("id");
			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

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

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

时间: 2024-10-02 02:51:29

Android 通过网页打开自己的APP(scheme)的相关文章

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

通过使用手机的浏览器(内部.第三方能够)访问网页,点击一个链接,开始实施自己的应用程序,和传输数据. 第一Mainifest面对文件启动Activity添加过滤器. <activity android:name="com.example.helloworld.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name=&quo

Android应用安全开发之浅谈网页打开APP

一.网页打开APP简介 Android有一个特性,可以通过点击网页内的某个链接打开APP,或者在其他APP中通过点击某个链接打开另外一个APP(AppLink),一些用户量比较大的APP,已经通过发布其AppLink SDK,开发者需要申请相应的资格,配置相关内容才能使用.这些都是通过用户自定义的URI scheme实现的,不过背后还是Android的Intent机制.Google的官方文档<Android Intents with Chrome>一文,介绍了在Android Chrome浏览

如何通过网页打开Android APP

如何通过网页打开Android APP 1.首先在编写一个简单的html页面 html页面中只有一个简单的连接,代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> &

Android 从网页中跳转到APP

先说实现步骤再说原理: 使用步骤 一,首先要给你要打开的应用中的activity设置过滤器(在清单文件里设置) 以JumpActivity为例 如下面的: <intent-filter>  中就是所需过滤器 <activity android:name=".JumpActivity" > <intent-filter> <action android:name="android.intent.action.VIEW" /&g

android一个app打开另一个app的指定页面

一个app打开另一个app的指定页面方法 有以下几种 1.通过包名.类名 2.通过intent的 action 3.通过Url 方案1. ComponentName componentName = new ComponentName("com.example.bi", "com.example.bi.SplashActivity");//这里是 包名 以及 页面类的全称 Intent intent = new Intent(); intent.setComponen

手机网页,点击直接打开百度地图app

<p><a href="baidumap://map/direction?mode=[transit:公交,driving:驾车]&origin=纬度,经度&destination=纬度,经度?ion=城市代码" class="map">查看地图公交/驾车去这里</a></p>调用了app <p><a href="http://api.map.baidu.com/marker

如何通过Html网页调用本地安卓app

如何使用html网页和本地app进行传递数据呢?经过研究,发现还是有方法的,总结了一下,大致有一下几种方式 一.通过html页面打开Android本地的app 1.首先在编写一个简单的html页面 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</t

谷歌推出全新Android开发语言Sky:让App更流畅

土豆网同步更新:http://www.tudou.com/plcover/VHNh6ZopQ4E/ 使用HTML 创建Mac OS App 视频教程. 官方QQ群: (1)App实践出真知 434558944 (2)App学习交流 452180823 百度网盘同步:http://pan.baidu.com/s/1jG1Q58M 分享  [中文纪录片]互联网时代                 http://pan.baidu.com/s/1qWkJfcS 谷歌推出全新Android开发语言Sky

android产品研发(十三)--&gt;App轮训操作

转载请标明出处:一片枫叶的专栏 上一篇文章中我们讲解了android app实现长连接的几种方式,各自的优缺点以及具体的实现,一般而言使用第三方的推送服务已经可以满足了基本的业务需求,当然了若是对技术有追求的可以通过NIO或者是MINA实现自身的长连接服务,但是自己实现的长连接服务一来比较复杂耗时比较多,而且可能过程中有许多坑要填,一般而言推荐使用第三方的推送服务,稳定简单,具体管理长连接部分的模块可参考:android产品研发(十二)–>App长连接实现. 而本文将讲解app端的轮训请求服务,