参考资料:
https://blog.youkuaiyun.com/sinat_17775997/article/details/70473988
https://www.jianshu.com/p/8f2232da0956
http://www.cocoachina.com/ios/20161026/17855.html
本文主要介绍react-native应用如何处理APP被外部URL调起的事件,并解析URL携带的参数。
1、应用间相互跳转简介
在iOS开发的过程中,我们经常会遇到需要从一个应用程序A跳转到另一个应用程序B的场景。这就需要我们掌握iOS应用程序之间的相互跳转知识。
2、应用间相互跳转实现原理
在iOS中打开一个应用程序只需要拿到这个应用程序的协议头即可,所以我们只需配置应用程序的协议头即可。
假设有应用A和应用B两个应用,现在需要从应用A跳转到应用B中。
原理:通过设置跳转到应用B的URL Schemes(自定义的协议头),应用B将其自身“绑定”到一个自定义URL Schemes上,就可以从应用A中利用应用B的URL Schemes启动应用B了。
IOS应用在info.plist文件中可以设置URL Schemes(URL types -> URL Schemes)。
(APP可以向手机操作系统注册一个 URL scheme,该 scheme 用于从浏览器或其他应用中启动本应用。)
3、RN端使用Linking处理APP被其注册过的外部 url 调起的情况
这一步,需要考虑两种情况,即
(1)APP未在运行
当APP未在运行状态时,可以使用Linking.getInitialURL()方法来处理外部URL调起的事件。
(2)APP在运行当中
当APP处在运行状态时,Linking.getInitialURL()方法是不会响应外部URL调起事件的。需要执行以下操作: