深度链接 Deep Link 开发遇到的坑
列表内容
最近完成项目里一些功能所以空闲时间比较多,但是最近老大让我们在项目里加入深度链接功能,一开始听到深度链接这个词我有点懵X,什么鬼没听说过啊!硬着头皮去网上查资料啊!结果发现已经有专门公司已经集成了Deep Link SDK。但是在网上也有不用SDk可以实现的方法。当然我们是选择不花钱的方式去完成了。不废话直接进入主题。
我们应用中深度链接是通过应用宝的微链接实现的,实现这一功能还需要与公司的后台做相应的配合,而在移动前端代码中几处做相应的配置就行了。首先要在一个Activity接收深度链接后台传过来的数据,在AndroidManifest.xml清单文件中的对应的activity添加一个隐式意图(intent-filter)`<intent-filter android:autoVerify="true"><action android:name="android.intent.action.VIEW"/><category android:name="android.intent.category.BROWSABLE"/><category android:name="android.intent.category.DEFAULT"/><dataandroid:host="包名"android:scheme="域名"/></intent-filter>`
其中关键配置是data节点中的host配置为APP的包名,scheme配置和服务器约定好。接下来就会在相应的Activity中接受intent-filter传递过来的数据,代码如下:
private String scheme;private Intent intent;intent = getIntent();if(intent ==null) return;scheme = intent.getScheme();if (scheme!=null&&TextUtils.equals(scheme,AppConstant.ACTIVITY_SCHEME)){Uri uri = intent.getData();String detaillink = uri.getQueryParameter("detaillink");String title = uri.getQueryParameter("title");String type = uri.getQueryParameter("type");String typeId = uri.getQueryParameter("typeId");String staticlink = uri.getQueryParameter("staticlink");String titleimage = uri.getQueryParameter("titleimage");NewsBean news = new NewsBean();news.setDetaillink(detaillink);news.setStaticlink(staticlink);news.setTitle(title);news.setType(type);news.setId(typeId);news.setTitleimage(titleimage);Intent intent1 = new Intent(WelcomeActivity.this, ArticleActivity.class);intent1.putExtra("linkedArticle",true);intent1.putExtra(AppConstant.putExtra_WebView_Name,news);startActivity(intent1);AAnim.ActivityStartAnimation(WelcomeActivity.this);WelcomeActivity.this.finish();}
但是在测试的过程中,发现了一个比较坑的问题,例如我们从微信朋友圈里点击分享的文章会跳到APP指定页面。但是这时候应用退到后台杀死进程再次进行深度链接时,深度链接功能失效。查阅资料也没有找到相应的解决办法,小民我真的是陷入了一片苦恼之中,疯狂地查阅资料和咨询前辈给予经验。终于这个bug被解决了。上代码实例:
<activity
android:name=".activity.WelcomeActivity"** android:alwaysRetainTaskState="true"** android:launchMode="singleTask"** android:noHistory="true"android:theme="@style/WelcomeTheme"><intent-filter><category android:name="android.intent.category.DEFAULT"/><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter><intent-filter android:autoVerify="true"><action android:name="android.intent.action.VIEW"/><category android:name="android.intent.category.BROWSABLE"/><category android:name="android.intent.category.DEFAULT"/><data
android:host="包名"android:scheme="域名"/></intent-filter></activity>
其实在对应的Activity之中配置带有**的那几个属性bug就解决了,其实具体原因我也不是很清楚,可能就是删除了历史缓存和android的登录模式的关系吧!如果有大神知道欢迎指导。纯属个人开发过程中的遇坑心得。
深度链接 Deep Link 开发遇到的坑相关推荐
- 什么是深度链接(deep link)
DeepLink:名为"深度链接",这是对于已经安装了APP,并把需要的参数通过URL的形式传递给App,指向特定的页面,主要就是帮助开发者实现,从外部链接到App内部页面的直接跳 ...
- 所谓深度链接(Deep linking)
是为那些非Html页面应用而给定的一种关于URL定位的描述. 例如,在一个网页里,如果有"Home"."About Us"和"Contact" ...
- Windows Phone 7(WP7)开发 自订磁贴(深度链接)
用过Wp7手机的同学应该都对内置的Office印象深刻,每一个文档的图标长按会出现一个菜单,能够"固定到开始屏幕",固定到开始屏幕的那个图标,点击之后,会直接打开该文档内容. 又如 ...
- 大量机器学习(Machine Learning)深度学习(Deep Learning)资料
机器学习目前比较热,网上也散落着很多相关的公开课和学习资源,这里基于课程图谱的机器学习公开课标签做一个汇总整理,便于大家参考对比. 1.Coursera上斯坦福大学Andrew Ng教授的" ...
- 在 iOS 与 Android 上实现 React Native 应用深度链接,通过 URL 打开到指定页面
在 iOS 与 Android 上实现 React Native 应用深度链接,使得应用可以通过 我们生活在一个万物兼可分享的年代,而分享的过程,几乎最终都会分享某一个链接,那么,作为开发者,最常遇到 ...
- Deferred Deeplink(延展的深度链接)
最近在研究Deferred Deeplink,网上查了查资料,在这里整理记录一下,供大家学习参考. 前言 Deferred Deeplink(延展的深度链接) Deeplink有个局限,就是只能在已安 ...
- 机器学习(Machine Learning)深度学习(Deep Learning)资料(Chapter 2)
机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2) - tony的专栏 - 博客频道 - CSDN.NET 注:机器学习资料篇目一共 ...
- SWFAddress实现Flex深度链接(不同模块具有不同的URL)
众所周知,Flex明显区别于传统B/S开发模式的特性中,有一条为在Flex中已经再看不到页面的跳转会伴随URL的变化了,但在实际应用中,我们会遇到,我们给朋友介绍自己Flex做的网站的某个亮点时候,没 ...
- 【深度学习Deep Learning】资料大全
感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 对商业智能BI.大数据分析挖掘.机器学习, ...
最新文章
- 无聊软件-GIT屏幕录制工具_已迁移
- 判断两棵树是否相等与使用二叉链表法建立二叉搜索树
- python字符串find函数实现_python中实现查找字符串的find函数
- 怎么用python读取csv文件、并且是读取行-python读取csv文件指定行的2种方法详解...
- 怎么用python编简单游戏_用Python实现一个简单的算术游戏详解
- [转]URLRewrite隐藏.aspx后缀名的应用(转载+延伸)
- 语音幅度统计-matlab-有问题
- [BZOJ5303] [HAOI2018] 反色游戏
- form表单获取多选的值
- 哪些人在听 60 亿流量《惊雷》?Python 告诉你 | 原力计划
- 李飞飞离职Google重返斯坦福,CMU计算机学院院长Andrew Moore接任
- java从字符串中提取数字的简单实例
- 说服力——教你做出专业出彩的演示PPT
- asp.net 设置敲回车触发按钮
- 读Zepto源码之Touch模块
- java 微信小程序 在线学习系统app
- 【Share Backup】FreeCrawl
- ESP8266-连接阿里云示例
- 什么是html5页面ui,H5页面UI设计和APP设计有什么区别?
- 开发新产品的三个验证阶段(EVT/DVT/PVT)