加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

在iOS 与Android上实现React Native应用的尝试链接

发布时间:2019-08-23 02:04:23 所属栏目:业界 来源:魑魅魍魉
导读:我们生活在一个万物兼可分享的年代,而分享的过程,几乎最终都会分享某一个链接,那么,作为开发者,最常遇到的问题中应该包括如何通过一个URL地址快速的打开App,并导航至特定的页面。 什么是深度链接(Deep Link) 深度链接是一项可以让一个App通过一个URL

添加 src/screens/Article.tsx

  1. import React from 'react' 
  2.  
  3. import { StyleSheet, Text, View } from 'react-native' 
  4.  
  5. import { NavigationScreenComponent } from 'react-navigation' 
  6.  
  7. interface NavigationParams { 
  8.   id: string 
  9.  
  10. const ArticleScreen: NavigationScreenComponent<NavigationParams> = ({ navigation }) => { 
  11.   const { params } = navigation.state 
  12.  
  13.   return ( 
  14.     <View style={styles.container}> 
  15.       <Text style={styles.title}>Article {params ? params.id : 'No ID'}</Text> 
  16.     </View> 
  17.   ) 
  18.  
  19. ArticleScreen.navigationOptions = { 
  20.   title: 'Article', 
  21.  
  22. export default ArticleScreen 
  23.  
  24. const styles = StyleSheet.create({ 
  25.   container: {}, 
  26.   title: {}, 
  27. }) 

配置 iOS

打开 ios/DeepLinkingExample.xcodeproj:

  1. open ios/DeepLinkingExample.xcodeproj 

点击 Info Tab 页,找到 URL Types 配置,添加一项:

  • identifier:deep-linking
  • URL Schemes:deep-linking
  • 其它两项留空

打开项目跟目录下的 AppDelegate.m 文件,添加一个新的 import:

  1. #import "React/RCTLinkingManager.h" 

然后在 @end 前面,添加以下代码:

  1. - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 
  2.   return [RCTLinkingManager application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; 

至此,我们已经完成了 iOS 的配置,运行并测试是否成功。

  1. react-native run-ios 

打开 simulator 之后,打开 Safari 浏览器,在地址栏中输入:deep-linking://article/4 ,你的应用将会自动打开,并同时进入到 Article 页面。

同样的,你还可以在命令行工具中执行以下命令:

  1. xcrun simctl openurl booted deep-linking://article/4 

配置 Android

要为Android应用也创建 External Linking,需要创建一个新的 intent,打开 android/app/src/main/AndroidManifest.xml,然后在 MainActivity 节点添加一个新的 intent-filter:

  1. <application ...> 
  2.   <activity android:name=".MainActivity" ...> 
  3.     ... 
  4.     <intent-filter> 
  5.       <action android:name="android.intent.action.VIEW" /> 
  6.       <category android:name="android.intent.category.DEFAULT" /> 
  7.       <category android:name="android.intent.category.BROWSABLE" /> 
  8.       <data android:scheme="deep-linking" /> 
  9.     </intent-filter> 
  10.     ... 
  11.   </activity> 
  12. </application> 

Android 只需要完成上面的配置即可。

执行:

  1. react-native run-android 

打开系统浏览器,输入:

  1. deep-linking://article/4 

系统会自动打开你的应用,并进入 Article 页面

也可以在命令行工具中使用以下命令打开:

  1. adb shell am start -W -a android.intent.action.VIEW -d "deep-linking://article/3" com.deeplinkingexample; 

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读