- 浏览: 70479 次
- 性别:
- 来自: 北京
最新评论
转载请注明出处: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 2427转载请注明出处: http://renyuan-1991.it ... -
自定义组合控件的总结
2016-06-21 16:27 1554自定义组合控件的总结 转载请注明出处:http://renyu ... -
只显示年月的DatePicker
2016-06-12 17:30 3374转载请注明出处:http://renyuan-1991.ite ... -
Android的约束布局ConstaintLayout
2016-06-24 15:05 9923ConstaintLayout的初次使用总结 转载请注明出处 ... -
Android遮罩层引导页的实现
2016-06-03 16:28 0实现遮罩层引导页可以通过以下几种方式,本文主要记录张洪洋Hig ... -
手势密码
2016-05-24 14:52 0我们公司做的是理财产品,所以手势密码这个东西少不了,在写手势密 ... -
线性布局的权重weight使用详解
2016-01-20 14:29 2439对线性布局中权重的理解 转载请注明出处:http://ren ... -
setBackgroundResource导致Padding失效,settextsize
2016-01-18 19:50 1573通过setBackground设置9 patc ... -
NestedScrolling的使用及ScrollView的惯性滑动
2015-12-08 18:14 21570NestedScrolling的使用及ScrollView的惯 ... -
android-async-http使用和取消请求
2015-10-15 12:06 4994android-async-http使用总结 下载最新的包可以 ... -
触摸屏幕取消键盘
2015-10-13 18:09 1585当点击文本框和发送按钮的时候不需要取消键盘,点击屏幕其他按钮或 ... -
四种方式实现ListView中的倒计时一()
2015-09-29 12:33 0的奋斗奋斗奋斗 -
SQLite详解
2015-10-10 15:07 1103概述 SQLite是D.Richar ... -
android 的屏幕适配问题,dp与px的换算
2015-08-08 19:11 1775在进入正题之前先了解 ... -
自定义ViewGroup实现动态创建可换行标签
2015-08-03 15:15 1215转载请注明:http://renyua ... -
Android第三方框架之xListView的使用方法
2014-11-09 19:18 5152==最近向用xListView实现刷新效果,在网上没有找到相关 ...
相关推荐
总结,通过网页打开APP并传递参数,主要是通过深度链接和应用链接技术实现的。在Android中,这需要在AndroidManifest.xml中配置Intent Filter,定义自定义URL Scheme,并在目标Activity中解析传入的参数。这不仅提升...
用户在浏览器中打开这个HTML页面,点击链接,如果手机上安装了对应的App,系统就会自动启动App,并传递"id=123"这个参数。 为了处理这个Intent,我们需要在App的Activity中重写onCreate()方法,添加如下代码: ```...
4. **传递参数**:如果需要在调用时传递数据,这些数据可以编码到URL的查询字符串中。例如,`appa://open?param1=value1¶m2=value2`。在被调用的应用中,你可以在`application:openURL:options:`方法中解析这些...
通过URL打开表单时,可以传递参数给表单。这通过在URL中添加参数键值对的形式实现。例如,在form_params参数中可以设置特定的键值对来传递表单需要的配置或数据。 知识点七:链接点击登录后打开特定表单的场景 在...
打开App ``` 这样,当用户点击链接时,Android应用可以通过解析URI获取参数并执行相应操作。 3. **JavaScript处理**: 为了确保在没有对应App的设备上不会出现错误,我们可以使用JavaScript进行检测和处理。通过`...
这个资源"android通过html打开本地app"提供了一种实现方式,使得开发者能够从HTML页面中启动Android应用程序,并且能够传递数据。下面我们将详细探讨这一技术及其相关知识点。 1. Web Intent 桥接: HTML页面不能...
在现代的移动应用开发中,将网页与原生应用程序(如安卓APP)集成是一种常见的需求。这使得用户可以通过网页交互来启动本地应用,...在实际项目中,根据具体需求,还可以扩展到传递参数、处理多种类型的URL等高级用法。
提供的“iphoneurlscheme_reference.pdf”文档很可能是关于iOS URL Scheme的官方参考或教程,里面应该包含更多细节,如如何处理URL参数、如何安全地传递数据等。建议仔细阅读并结合实际项目进行实践。 通过以上步骤...
本文将深入探讨一个名为"Android-ActivityRouter"的路由框架,该框架利用注解技术来实现URL打开Activity的功能。这使得开发者能够方便地通过URL地址来启动Activity,同时支持在WebView和外部浏览器环境中运行,且...
- 检查App是否已安装:通过尝试打开URL并捕获可能的错误来判断。 - 创建DeepLink URL:根据给定的路径和参数生成URL。 - 打开DeepLink:使用上述提到的方法启动目标App并传递DeepLink。 使用这样的工具类,你可以...
1. **URL Schemes**: iOS允许开发者为自己的应用创建唯一的URL scheme,通过这种方式,外部应用可以打开你的应用并传递特定的数据。例如,当你在另一个应用中点击一个链接,它可能会使用如`yourapp://yourdata`这样...
参数(如`param1`和`param2`)可以传递到APP内,APP解析这些参数后,可以根据它们的值决定显示哪个页面或执行什么操作。 文件名`jumpApp`可能包含实现上述功能的JavaScript代码示例,或者是用于配置Android和iOS的...
5. **适配农行APP**:农行APP可能要求特定的处理,比如在URL前面添加特定前缀或后缀,或者需要通过特定的方式(如JSON对象)传递参数,这需要参照文档中的指引。 6. **安全考虑**:在处理URL之前,确保所有的敏感...
它允许开发者通过编写JavaScript、WXML(Weixin Markup Language)和WXSS(Weixin Style Sheets)来构建用户界面,并通过微信运行环境执行。在本示例项目中,我们将深入探讨微信小程序页面的生命周期和参数传递。 ...
例如,当用户点击一个链接时,浏览器可以通过发送一个隐式Intent来唤醒微信,并传递相关的参数。 在iOS系统中,URL Scheme是一种自定义的协议,类似http或https,但由应用自身定义。每个应用可以注册自己的URL ...
比如,你可以通过URL Scheme传递参数,使应用的不同视图控制器根据参数进行不同的操作。例如,跳转到特定的页面或者执行特定的功能。 在GSFOpenURL-master这个压缩包中,可能包含了一个示例项目,演示了如何创建、...
例如,一个App可以注册`myapp://`作为它的Scheme,然后通过`[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"myapp://param1=abc¶m2=123"]]`来打开它并传递参数。 2. **Universal Links**:...
6. **URL Scheme**:每个应用都有自己的URL Scheme,如`myapp://`,用于识别和打开该应用。在`Info.plist`文件中定义你的URL Scheme,然后在代码中监听并处理这些URL。 7. **URLQueryItem**:用于处理URL中的查询...
在现代移动互联网时代,"web启动app"是一个重要的技术实现,它使得用户通过网页可以直接启动已安装在设备上的对应应用程序,提升用户体验并加强了网页与原生应用的交互。这一功能通常依赖于JavaScript(js)技术和...
Apicloud作为一个移动应用云端开发平台,其提供的API可以方便开发者在自己的App中实现各种功能,包括拉起微信小程序并传递参数。Apicloud的wx模块提供了launchMiniProgram方法,允许App打开微信小程序。 首先需要...