android:scheme 通过uri跳转到APP应用指定Activity

最近公司有个需求,点击第三方APP的H5页面然后直接跳转到APP里面,比如浏览器打开一个H5页面,然后点击某个链接就直接到APP的某个指定的Activity,经过研究发现实现还是蛮easy的,下面说下方法吧。

首先,在AndroidManifest.xml里面进行配置,在对应的Activity加上一个intent-filter, 如下:

<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <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="paraches" />
            </intent-filter>
            </activity>
    </application>

接下来在对应的这个Activity加上相关解析代码,如下:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Intent intent = getIntent();
        String action = intent.getAction();
        if (Intent.ACTION_VIEW.equals(action)) {
        	Uri uri = intent.getData();
        	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();
                Log.d("Alex", "host:"+host);
                Log.d("Alex", "dataString:" + dataString);
                Log.d("Alex", "id:" + id);
                Log.d("Alex", "path:" + path);
                Log.d("Alex", "path1:" + path1);
                Log.d("Alex", "queryString:" + queryString);
            }
        }
    }

看下Log情况,如下:

host:schemedemo
dataString:paraches://schemedemo/get/info?id=10000
id:10000
path:/get/info
path1:/get/info
queryString:id=10000

简单网页如下,这个网页可以用浏览器打开,然后点击跳转链接:

<a href="paraches://schemedemo/get/info?id=10000">open android app</a>

经过以上步骤就OK了,是不是很easy啊,不过我相信可能还是有小伙伴会迷路,这里上传一下项目demo,这个网页就自己建立了,我就不上传了,链接如下:

http://download.csdn.net/detail/msn465780/9516335

点击打开链接

时间: 2024-10-11 07:59:37

android:scheme 通过uri跳转到APP应用指定Activity的相关文章

Android 从网页中跳转到APP

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

android产品研发(十四)--&gt;App升级与更新

转载请标明出处:一片枫叶的专栏 上一篇文章中我们讲解了android app中的轮训操作,讲解的内容主要包括:我们在App中使用轮训操作的情景,作用以及实现方式等.一般而言我们使用轮训操作都是通过定时任务的形式请求服务器并更新用户界面,轮训操作都有一定的使用生命周期,即在一定的页面中启动轮操作,然后在特定的情况下关闭轮训操作,这点需要我们尤为注意,我们还介绍了使用Timer和Handler实现轮训操作的实例,更多关于App中轮训操作的信息,可参考我的:android产品研发(十三)–>App轮训

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

Android应用开发-页面跳转与数据传递(重制版)

Android四大组件:Activity,Service,Broadcast Receiver,Content Provider 创建Activity 定义Java类,继承Activity类 在清单文件中配置activity标签 activity标签下如果带有下面这部分代码,则会在系统中多创建一个快捷图标 <intent-filter> <action android:name="android.intent.action.MAIN" /> <catego

URI跳转方式地图导航的代码实践

本文转载至 http://adad184.com/2015/08/11/practice-in-mapview-navigation-with-URI/ 前言 之前介绍了我正在做的是一款定位主打的应用 然后最近我们需要做一个定位导航的功能 能够让用户从当前位置导航到指定目的地(默认以驾车的方式导航) 手机上的导航方式 分应用内导航和应用外导航 应用内导航是指使用地图服务提供的SDK(比如高德,百度等等) 直接将导航功能嵌入到我们自己的APP内部但是这个方案我个人不喜欢 一是接入要一定的时间 二是

通过uri呼起本地app

1.在Android本地app清单文件里配置 <activity android:name="com.mdj.ui.WelcomeActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" > <intent-filter> <action android

android产品研发(十二)--&gt;App长连接实现

转载请标明出处:一片枫叶的专栏 上一篇文章中我们讲解了android应用内页面跳转协议-scheme协议,通过该协议我们可以跳转至指定的Activity,并在该Activity中解析scheme用于跳转到指定的页面,我们可以利用scheme协议实现应用内页面跳转.H5页面与Native页面相互跳转.通知栏消息跳转相应页面等,具体可参考:android产品研发(十一)–>使用scheme实现页面跳转. 而本文中我们将讲解一下App的长连接实现.一般而言长连接已经是App的标配了,推送功能的实现基础

那些年,被我们遗忘的技术&lt;Android 基于URL界面跳转&gt;

对于安卓界面跳转主要大家常用的可能都是显示的调用方式,我记得曾经有次面试的时候还被问到,确实显示的跳转狠简单并且很暴力,同时也深受大众喜爱.但是既然Google提供了另一种隐式的界面跳转,能一直存在下来必然是有意义的.那么问题来了,为什么这么说? 鞥横. 对于系统级应用的调用我想应该很多人用到,例如调用系统打电话功能,系统相册,系统相机等等.对于这些调用其实我们都是隐式调用.这也许是Google提供该功能的一个重要原因吧!可能在当前应用内部很少会有人用到这种调用方式,但是对于当下组件化开发盛行时

Android编程实现点击链接打开APP功能示例

本文实例讲述了Android编程实现点击链接打开APP功能.分享给大家供大家参考,具体如下: 在Android中点击链接打开APP是一个很常见的需求.例如,电商为用户发送优惠券之后经常会下发一条短信:某某优惠券已发送到您的账户中,点击 xxx 链接即可查看!此时当用户点击链接之后会直接打开本地APP,进入相关页面. 功能实现: 1.在manifest中为相应的activity添加intent-filter: ? 1 2 3 4 5 6 7 8 9 10 11 12 <activity    an