android:scheme 通过uri跳转到APP应用指定Activity
2016-05-11 10:31
961 查看
最近公司有个需求,点击第三方APP或者APP内的H5页面然后直接跳转到APP里面,比如浏览器打开一个H5页面,然后点击某个链接就直接到APP的某个指定的Activity,经过研究发现实现还是蛮easy的,下面说下方法吧。
首先,在AndroidManifest.xml里面进行配置,在对应的Activity加上一个intent-filter, 如下:
接下来在对应的这个Activity加上相关解析代码,如下:
看下Log情况,如下:
经过以上步骤就可以在第三方APP打开自己想要的APP指定页面了,是不是很easy啊,再说下应用内点击链接也可以打开,需要如下代码:
简单网页如下,这个网页可以用浏览器打开,然后点击跳转链接:
<a href="paraches://schemedemo/get/info?id=10000">open android app</a>
也可以不要域名和路径,写成
<a href="paraches://?id=10000">open android app</a>
paraches:自定义的scheme,想叫任何名字都可以,只要activity注册那里和网页链接一致就行
不过我相信可能还是有小伙伴会迷路,这里上传一下项目demo,这个网页就自己建立了,我就不上传了,链接如下:
http://download.csdn.net/detail/msn465780/9516335
点击打开链接
http://download.csdn.net/download/msn465780/10234615
下载地址2
首先,在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
经过以上步骤就可以在第三方APP打开自己想要的APP指定页面了,是不是很easy啊,再说下应用内点击链接也可以打开,需要如下代码:
if (url.startsWith("paraches")) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); finish(); }
简单网页如下,这个网页可以用浏览器打开,然后点击跳转链接:
<a href="paraches://schemedemo/get/info?id=10000">open android app</a>
也可以不要域名和路径,写成
<a href="paraches://?id=10000">open android app</a>
paraches:自定义的scheme,想叫任何名字都可以,只要activity注册那里和网页链接一致就行
不过我相信可能还是有小伙伴会迷路,这里上传一下项目demo,这个网页就自己建立了,我就不上传了,链接如下:
http://download.csdn.net/detail/msn465780/9516335
点击打开链接
http://download.csdn.net/download/msn465780/10234615
下载地址2
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories