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

 更新时间:2017年01月20日 12:01:24   作者:books1958  
这篇文章主要介绍了Android编程实现点击链接打开APP功能,结合实例形式较为详细的分析了Android实现点击链接打开APP功能的具体步骤与相关注意事项,需要的朋友可以参考下

本文实例讲述了Android编程实现点击链接打开APP功能。分享给大家供大家参考,具体如下:

在Android中点击链接打开APP是一个很常见的需求。例如,电商为用户发送优惠券之后经常会下发一条短信:某某优惠券已发送到您的账户中,点击 xxx 链接即可查看!此时当用户点击链接之后会直接打开本地APP,进入相关页面。

功能实现:

1.在manifest中为相应的activity添加intent-filter:

<activity
   android:name=".TestActivity">
   <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:host="mywebsite.com"
        android:pathPrefix="/openApp"
        android:scheme="http" />
   </intent-filter>
</activity>

2.在手机上模拟发一条短信,包含链接 http://mywebsite.com/openApp ,手机一般都能自动识别链接,点击链接后系统会弹出选择框,如下:

点击自己的APP(AndroidTest)之后,系统就会自动打开AndroidTest这个程序的TestActivity这个页面。

3.然而,上述做法显然是不完美的,因为用户很可能会选择浏览器打开此链接!为了解决这个问题,可以将scheme属性修改为自定义的,例如:

<data
   android:host="mywebsite.com"
   android:pathPrefix="/openApp"
   android:scheme="myapp" />

此时,对应的链接地址为 myapp://mywebsite.com/openApp . 因为手机本地只有我们自己的程序能够识别 myapp 这个协议,所以会直接打开APP。然而依旧存在问题:

(1)如果把该链接放在网页上,希望希望用户点击链接后打开APP,那么上述做法是没有问题的。例如网页中添加如下代码即可:

<a href='myapp://mywebsite.com/openApp'>点击打开APP</a>

(2)但是,如果把链接放在短信中就不行了。因为 myapp 这个协议系统的短信程序也不能识别,所以不会标记为链接样式,也就是说用户不能直接点击。

解决该问题的方法是使用网页重定向功能,例如在短信中发送链接: http://abc.com/openApp ,然后在该网页上添加重定向:

复制代码 代码如下:
<meta http-equiv="Refresh" content="0;url=myapp://mywebsite.com/openApp?name=zhangsan&age=20" />

用户在短信中点击后会使用浏览器打开链接,然后自动打开自己的APP。

4.最后,在TestActivity中可以获取链接url传递的参数:

Intent intent = getIntent();
String action = intent.getAction();
if (Intent.ACTION_VIEW.equals(action)) {
   Uri uri = intent.getData();
   if (uri != null) {
     String name = uri.getQueryParameter("name");
     String age = uri.getQueryParameter("age");
     Toast.makeText(this, "name=" + name + ",age=" + age, Toast.LENGTH_SHORT).show();
   }
}

PS:关于AndroidManifest.xml文件相关属性功能可参考本站在线工具:

Android Manifest功能与权限描述大全:
http://tools.jb51.net/table/AndroidManifest

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》、《Android资源操作技巧汇总》、《Android文件操作技巧汇总》、《Android开发入门与进阶教程》、《Android编程之activity操作技巧总结》及《Android控件用法总结

希望本文所述对大家Android程序设计有所帮助。

相关文章

  • Android 指纹功能实例代码

    Android 指纹功能实例代码

    本文通过一个demo给大家介绍了android指纹功能,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-12-12
  • Android自定义ViewGroup实现朋友圈九宫格控件

    Android自定义ViewGroup实现朋友圈九宫格控件

    在我们的实际应用中,经常需要用到自定义控件,比如自定义圆形头像,自定义计步器等等,这篇文章主要给大家介绍了关于Android自定义ViewGroup实现朋友圈九宫格控件的相关资料,需要的朋友可以参考下
    2021-07-07
  • 详解 Kotlin Reference  Basic Types, String, Array and Imports

    详解 Kotlin Reference Basic Types, String, Array and Imports

    这篇文章主要介绍了详解 Kotlin Reference Basic Types, String, Array and Imports的相关资料,需要的朋友可以参考下
    2017-06-06
  • Android ViewFlipper的简单使用

    Android ViewFlipper的简单使用

    这篇文章主要为大家详细介绍了Android ViewFlipper的简单使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Android连接指定Wifi的方法实例代码

    Android连接指定Wifi的方法实例代码

    本篇文章主要记录一下Android中打开Wifi、获取Wifi接入点信息及连接指定接入点的方法,通过小编自己写的demo主要用于测试接口的基本功能,具体实例代码大家通过本文一起学习吧
    2017-03-03
  • Android 中 onSaveInstanceState()使用方法详解

    Android 中 onSaveInstanceState()使用方法详解

    这篇文章主要介绍了Android 中 onSaveInstanceState()使用方法详解的相关资料,希望通过本文大家能够掌握这部分知识,需要的朋友可以参考下
    2017-09-09
  • Android中生成、使用Json数据实例

    Android中生成、使用Json数据实例

    这篇文章主要介绍了Android中生成、使用Json数据实例,本文直接给出了实现代码,相对容易理解,需要的朋友可以参考下
    2014-10-10
  • RecyclerView实现拖拽排序效果

    RecyclerView实现拖拽排序效果

    这篇文章主要为大家详细介绍了RecyclerView实现拖拽排序效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Android实现简单的加载进度条

    Android实现简单的加载进度条

    这篇文章主要为大家详细介绍了Android实现简单的加载进度条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • android使用PullToRefresh实现下拉刷新和上拉加载

    android使用PullToRefresh实现下拉刷新和上拉加载

    本篇文章主要介绍了android使用PullToRefresh实现下拉刷新和上拉加载,具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12

最新评论