Android 通过网页打开自己的APP(scheme)
2015-10-23 15:33
405 查看
Android 通过网页打开自己的APP(scheme)
分类: android2014-07-09 17:35 8565人阅读 评论(2) 收藏 举报通过用手机的浏览器(内置,第三方都可)访问一个网页,实现点击一个链接启动自己的应用,并传递数据。
首先在Mainifest文件里面对要启动的Activity添加一个过滤器。
[java] view plaincopy
<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接收数据:
[java] view plaincopy
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("d");
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);
}
}
}
写一个最简单的网页:
[html] view plaincopy
<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
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- 如何实现MindMapper中的幻灯片功能的合理运用
- ios7 苹果原生二维码扫描(和微信类似)
- Android Fragment 生命周期分析
- iOS tableView滑动隐藏/显示tabbar
- 运行百度语音识别官方iOS demo报错: load offline engine failed: 4001
- iOS--格式化日期时间
- 如何用AndroidStudio导入github项目
- Android封装TextView内容伸缩工具
- app测试点
- 整理hibernate.cfg.xml 与 applicationContext之间的配置方式
- iOS 开发中如何使用半透明模糊效果
- iOS开发—AFNetworking的使用
- [Phonegap+Sencha Touch] 移动开发67 安卓实现 新版提示更新并下载安装(自动更新插件)
- 【学习笔记】Android 动态添加控件 getlayoutparams 为空的问题
- Android即时聊天自己封装的QQ录音帮助类.
- iOS开发>学无止境 - 委托模式
- Android2.2 API 中文文档系列(6) —— ImageView
- Add platform android error
- Android灵动分析入门指南
- iOS三方-MJRefresh的使用