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

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

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

首先在Mainifest文件里面对要启动的Activity添加一个过滤器。

1 <activity
2             android:name="com.example.helloworld.MainActivity"
3             android:label="@string/app_name" >
4             <intent-filter>
5                 <action android:name="android.intent.action.MAIN" />
6  
7                 <category android:name="android.intent.category.LAUNCHER" />
8             </intent-filter>
9             <intent-filter>
10                 <action android:name="android.intent.action.VIEW"/>  
11                 <categoryandroid:name="android.intent.category.DEFAULT"/>            
12                 <category android:name="android.intent.category.BROWSABLE"/>
13                 <data android:scheme="znn"/>
14             </intent-filter>
15         </activity>

在MainActivity接收数据:

1 public class MainActivity extends Activity implements View.OnClickListener{
2  
3     @Override
4     protected void onCreate(Bundle
savedInstanceState) {
5         super.onCreate(savedInstanceState);
6         setContentView(R.layout.activity_main);
7  
8         Intent
intent = getIntent();
9         String
scheme = intent.getScheme();
10         Uri
uri = intent.getData();
11         System.out.println("scheme:"+scheme);
12         if (uri
!= 
null)
{
13             String
host = uri.getHost();
14             String
dataString = intent.getDataString();
15             String
id = uri.getQueryParameter(
"id");
16             String
path = uri.getPath();
17             String
path1 = uri.getEncodedPath();
18             String
queryString = uri.getQuery();
19             System.out.println("host:"+host);
20             System.out.println("dataString:"+dataString);
21             System.out.println("id:"+id);
22             System.out.println("path:"+path);
23             System.out.println("path1:"+path1);
24             System.out.println("queryString:"+queryString);
25         }
26          
27     }
28 }

写一个最简单的网页:

<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

时间: 2024-11-16 01:16:36

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

intent_filter-android 自定义scheme 通过网页打开APP

问题描述 android 自定义scheme 通过网页打开APP 这是一个商品详情页的activity 我现在添加了intent_filter 想通过这个连接 xgshuo://product_detail?product_id=5526365552555"打开APP 但是各种浏览器试过 就是不行 但是在应用内在别的页面通过这样 startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("xgshuo://product_detail

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 作者:伊樵,呆狐,舟海@阿里聚安全 一.网页打开APP简介 Android有一个特性,可以通过点击网页内的某个链接打开APP,或者在其他APP中通过点击某个链接打开另外一个APP(AppLink),一些用户量比较大的APP,已经通过发布其AppLink SDK,开发者需要申请相应的资格,配置相关内容才能使用.这些都是通过用户自定义的URI scheme实现的,不过背后还是Android的Intent机制.Google的官方文档<Android Inte

JS实现点击网页判断是否安装app并打开否则跳转app store_javascript技巧

常常有这样的场景,咱们开发出来的APP需要进行推广,比如在页面顶部来一张大Banner图片,亦或一张二维码.但往往我们都是直接给推广图片加了一个下载链接(App Store中的).所以咱们来模拟一下用户的操作步骤: 1.用户第一次访问宣传页面 a.点击Banner,进入到APP Store中对应的APP下载页 b.APP下载页中提示:安装:用户点击安装 c.安装完成后,APP下载页中提示:打开:用户继续点击打开 d.用户正常使用APP 2.用户第二次访问宣传页面 a.点击Banner,进入到AP

activity跳转-为什么eclipse android 程序一打开就直接停止运行

问题描述 为什么eclipse android 程序一打开就直接停止运行 本人刚开始学习android,跟着书写了个程序,这个程序是在一个activity中的button跳转到另一个activity中,编译完没有问题,但是在手机上运行的时候却是意外停止, 这是第一个activity的代码: import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.vie

webview网页交互-android native开发与android和网页交互相关问题

问题描述 android native开发与android和网页交互相关问题 webview中打开一个网页,网页中的按钮点击会跳转这个链接native-api://{"native-proc":{"api-name":"ChangesScreenToConfiguration","parames":""},"success-js-proc":"","erro

基础-关于Android在模拟器打开的首页跟在手机打开的首页不同

问题描述 关于Android在模拟器打开的首页跟在手机打开的首页不同 我是在网上下载一个别人已经写好的二维码扫描功能的项目,然后我在其基础上改变他的首页,然后在模拟器中能成功运行,并符合想象,可是一把apk拉到手机上安装时,又是原来的首页,有哪位大神能够帮忙解析一下吗? 解决方案 清除下浏览器缓存看看.二维码扫描是否正确.还有,对方网站是否根据ip判断的登录方式.

在android程序中打开HPROF文件时出错

问题描述 在android程序中打开HPROF文件时出错 当我用Memory Analyzer打开HPROF文件时(由Debug.dumpHprofData创建),得到的是以下的异常: java.io.IOException: Unknown HPROF Version (JAVA PROFILE 1.0.3) at org.eclipse.mat.hprof.AbstractParser.readVersion(AbstractParser.java:124) at org.eclipse.m

提高网页打开速度的一些小技巧

互联网带宽越来越宽,似乎让网页的加载速度得到了质的飞跃.其实不然,因为随着带宽的提高,网页上的对象也越来越多,因此加快网页打开速度还是一个重要的课题. 加快网页的打开速度,有三个路径,一是提高网络带宽,二是用户在本机做优化,三是网站设计者对网页做一定的优化.这篇文章站在一个网站设计者的角度,分享一些优化网页加载速度的小技巧. 一.优化图片 几乎没有哪个网页上是没有图片的.如果你经历过56K猫的年代,你一定不会很喜欢有大量图片的网站.因为加载那样一个网页会花费大量的时间. 即使在现在,网络带宽有了