- 浏览: 69501 次
- 性别:
- 来自: 北京
最新评论
转载请注明出处:http://renyuan-1991.iteye.com/blog/2404247
今天记录并总结一下外部唤起app并传递参数相关的知识。
开门见山直接贴代码吧。
通过以上的设置,在包含“http://mytest.com/app”内容的短信或者网页中都可以打开我们的app。就这么简单!传入参数也很简单,如:“http://mytest.com/app?id = 100”便可向app传递参数,在activity中添加以下代码用于接收参数。
可是为什么我没打开呢?
第一:检查<intent-filter>是否是单独配置,如果需要打开的页面已经有了<intent-filter>,那最好再建一个<intent-filter>,不要混在一起,否者无效。
第二:请按照以上的格式编写,并检查设置的scheme和调用链接的scheme是否一致。action和category也要和例子中的一致,为什么要这样设置,他们代表了什么意思?别着急,后面会说。
第三:如果在网页中调用,请不要用自己写的webview。需要用系统的浏览器。
第四:以上三点都符合,为什么在短信中还是调不起来?那是因为有些手机的短信(主要跟手机的系统版本有关)只识别http合https开头的scheme。对于这一点目前没有找到解决办法,如果哪位大佬解决了这个问题请在留言中告诉我,定感激不尽!
就Android平台而言,URI主要分三个部分:scheme, authority and path。其中authority又分为host和port。格式如下:
scheme://host:port/path
举个实际的例子:
content://com.example.project:200/folder/subfolder/etc
\---------/ \---------------------------/ \---/ \--------------------------/
scheme host port path
\--------------------------------/
authority
也就是说可以在data标签中添加一下这些信息
<data android:host="string"
android:mimeType="string"
android:path="string"
android:pathPattern="string"
android:pathPrefix="string"
android:port="string"
android:scheme="string" />
转载请注明出处:[url] http://renyuan-1991.iteye.com/blog/2404247[/url]
希望爱好编程的小伙伴能加这个群,互相帮助,共同学习。群号: 141877583
今天记录并总结一下外部唤起app并传递参数相关的知识。
开门见山直接贴代码吧。
<activity android:name=".view.activity.UserLoginActivity" android:configChanges="keyboardHidden|orientation" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden|adjustPan"> <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"></action> <category android:name="android.intent.category.DEFAULT"></category> <category android:name="android.intent.category.BROWSABLE"></category> <data android:host="mytest.com" android:pathPrefix="/app" android:scheme="http"> </data> </intent-filter> </activity>
通过以上的设置,在包含“http://mytest.com/app”内容的短信或者网页中都可以打开我们的app。就这么简单!传入参数也很简单,如:“http://mytest.com/app?id = 100”便可向app传递参数,在activity中添加以下代码用于接收参数。
Intent intent = getIntent(); String action = intent.getAction(); if(Intent.ACTION_VIEW.equals(action)){ Uri uri = intent.getData(); if(uri != null){ String id = uri.getQueryParameter("id"); Log.i("MyLog-UserLoginActivity", "onCreate: id = " + id); } }
可是为什么我没打开呢?
第一:检查<intent-filter>是否是单独配置,如果需要打开的页面已经有了<intent-filter>,那最好再建一个<intent-filter>,不要混在一起,否者无效。
第二:请按照以上的格式编写,并检查设置的scheme和调用链接的scheme是否一致。action和category也要和例子中的一致,为什么要这样设置,他们代表了什么意思?别着急,后面会说。
第三:如果在网页中调用,请不要用自己写的webview。需要用系统的浏览器。
第四:以上三点都符合,为什么在短信中还是调不起来?那是因为有些手机的短信(主要跟手机的系统版本有关)只识别http合https开头的scheme。对于这一点目前没有找到解决办法,如果哪位大佬解决了这个问题请在留言中告诉我,定感激不尽!
<action android:name="android.intent.action.VIEW"></action>的类型是有调用者决定的,我们想让系统的短息和浏览器打开我们的app,那就必须这么写,因为人家调用时指定的aciting是ACTION_VIEW。
<category android:name="android.intent.category.DEFAULT"></category>是隐式意图调用时必须的配置
<category android:name="android.intent.category.BROWSABLE"></category>是指定浏览器在特定情况下可以打开app。
就Android平台而言,URI主要分三个部分:scheme, authority and path。其中authority又分为host和port。格式如下:
scheme://host:port/path
举个实际的例子:
content://com.example.project:200/folder/subfolder/etc
\---------/ \---------------------------/ \---/ \--------------------------/
scheme host port path
\--------------------------------/
authority
也就是说可以在data标签中添加一下这些信息
<data android:host="string"
android:mimeType="string"
android:path="string"
android:pathPattern="string"
android:pathPrefix="string"
android:port="string"
android:scheme="string" />
转载请注明出处:[url] http://renyuan-1991.iteye.com/blog/2404247[/url]
希望爱好编程的小伙伴能加这个群,互相帮助,共同学习。群号: 141877583
发表评论
-
Retrofit+RxJava搭建网络请求和数据解析框架
2017-06-29 18:20 0好久没写博客了,实话说,这一年相比往年可以说没什么进步,工作四 ... -
viewpager指示器
2016-11-08 16:04 0viewpager指示器 实现该需求的几种方法的基本原理和缺点 ... -
Android Studio模板,省去界面重复部分的开发
2016-07-06 16:05 0Android Studio模板,省去界面重复部分的开发 -
android studio 运行java代码
2016-06-21 17:50 2385转载请注明出处: http://renyuan-1991.it ... -
自定义组合控件的总结
2016-06-21 16:27 1500自定义组合控件的总结 转载请注明出处:http://renyu ... -
只显示年月的DatePicker
2016-06-12 17:30 3308转载请注明出处:http://renyuan-1991.ite ... -
Android的约束布局ConstaintLayout
2016-06-24 15:05 9857ConstaintLayout的初次使用总结 转载请注明出处 ... -
Android遮罩层引导页的实现
2016-06-03 16:28 0实现遮罩层引导页可以通过以下几种方式,本文主要记录张洪洋Hig ... -
手势密码
2016-05-24 14:52 0我们公司做的是理财产品,所以手势密码这个东西少不了,在写手势密 ... -
线性布局的权重weight使用详解
2016-01-20 14:29 2369对线性布局中权重的理解 转载请注明出处:http://ren ... -
setBackgroundResource导致Padding失效,settextsize
2016-01-18 19:50 1538通过setBackground设置9 patc ... -
NestedScrolling的使用及ScrollView的惯性滑动
2015-12-08 18:14 21469NestedScrolling的使用及ScrollView的惯 ... -
android-async-http使用和取消请求
2015-10-15 12:06 4944android-async-http使用总结 下载最新的包可以 ... -
触摸屏幕取消键盘
2015-10-13 18:09 1551当点击文本框和发送按钮的时候不需要取消键盘,点击屏幕其他按钮或 ... -
四种方式实现ListView中的倒计时一()
2015-09-29 12:33 0的奋斗奋斗奋斗 -
SQLite详解
2015-10-10 15:07 1062概述 SQLite是D.Richar ... -
android 的屏幕适配问题,dp与px的换算
2015-08-08 19:11 1721在进入正题之前先了解 ... -
自定义ViewGroup实现动态创建可换行标签
2015-08-03 15:15 1153转载请注明:http://renyua ... -
Android第三方框架之xListView的使用方法
2014-11-09 19:18 5109==最近向用xListView实现刷新效果,在网上没有找到相关 ...
相关推荐
打开app传参和接收参数apk测试apk
通过超链接url打开一些常见app(scheme)
本文是B站由页君编写,原文地址和视频地址在文件内,原作者的网页发表的文章图片看的不是很清晰,我在文档内做了些调整 ...本文是介绍了如何在Matlab,Simulink,Appdesigner和本地参数之间变量相互传递
实现通过网页打开APP中指定Activity的功能,并且可以向Activity传递参数。有兴趣的可以下载查看。
从一个Cocoa App获取启动参数。参数由另一个App--CocoaA传递
常常有这样的场景,咱们开发出来的APP需要进行推广,比如在页面顶部来一张大Banner图片,亦或一张二维码。但往往我们都是直接给推广图片加了一个下载链接(App Store中的)。所以咱们来模拟一下用户的操作步骤: 1、...
html点击链接打开app并跳转至指定的界面;因为项目中有登录控制,所以需要在MainActivity中判断是否登录;如果登录状态,那么就直接跳转;如果未登录,则先保存要跳转的界面数据然后到登录界面登录成功回来会自动...
最近有朋友问小编这样一个问题,先给大家说下项目需求:扫描二维码打开app如果用户没有这个app则提示它跳转。 用网页直接来调用app是不打可能的,必须原生那边先做一些配置。 首先,安卓和苹果的调用方法是不同的。 ...
本文实例讲述了Android编程实现启动另外的APP及传递参数的方法。分享给大家供大家参考,具体如下: 有时候需要从一个APP中启动另外一个APP,比如Twitter/微信等。 如果你不知道那个APP的Activity,但是知道包名...
在Androidstudio上写app,实现多页面跳转和传递参数,用bundle存取数据,可以在返回时把参数值带回来,避免丢失,顺利完成传参
通过url跳回app,含测试html,亲测可用,有问题可以联系我
App打开小程序App打开小程序App打开小程序App打开小程序App打开小程序App打开小程序App打开小程序App打开小程序App打开小程序
java后台代码传递json格式参数给app移动端demo(Android,IOS),可直接运行
在APP内打开某个网页,只需要一个webview就可以了,还要加上访问网络的权限
下面将实现 Web跳转到app指定页面并传递参数 总结 先看效果图: h5页面代码: <!doctype html> <html> <head> <meta charset=utf-8> <meta name=viewport content=initial-scale=1.0, ...
该资源包含了一个android通过html打开本地app并且可以传递数据,简单易懂,喜欢的下载。
html中打开app,附件包括html界面,以及android程序
h5页面唤起app如果没安装就跳转下载(iOS和Android) 浏览器和app没有通信协议,所以h5不知道用户的手机释放安装了app。因此只能是h5去尝试唤起app,若不能唤起,引导用户去下载我们的app。 微信里屏蔽了 schema 协议,...
uniapp APP打开浏览器界面