我用的是反应导航-4。我当时在expo中,并使用简单的工作流将其逐出。现在我想使用深度链接,这样当我想点击通知时,它就会转到我的应用程序中的某个屏幕。
我遵循了https://reactnavigation.org/docs/4.x/deep-linking中的说明,但是当我使用Linking.openURL("rnfarmer://submitrating/dd");打开屏幕时,什么都没有发生。
这是我的App.js:
import React from "react";
import MyNavigator from "./navigation/MyNavigator";
export default function App() {
const prefix = 'rnfarmer://';
return <MyNavigator uriPrefix={prefix} />;
}这是MyNavigator.js文件:
...
export default createAppContainer(createStackNavigator({SubmitRating: {
screen: SubmitRatingScreen,
path: 'submitrating/:orderId'
}}));此外,我还将这些行添加到AndroidManifest.xml中:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="rnfarmer" />
</intent-filter>发布于 2020-06-09 11:33:33
最后我找到了答案。
我使用的是DrawerNavigator,所以我有一个嵌套导航,因此我应该向父导航器添加路径,然后添加到子导航器。
编辑
示例:这是您的主要导航器:
const MainNavigator = createDrawerNavigator({
MainNav: {
screen: FarmerNavigator,
path: "main"
} ,
ProfileNav: FillProfileNavigator,
MyOrdersNav: MyOrdersNavigator,
RatingNav: RatingNavigator,
RulesNav: RulesNavigator,
AboutAppNav: AbouAppNavigator
}, {
drawerPosition: "right",
contentComponent: DrawerContent,
contentOptions: {
activeTintColor: FarmerColors.colorPrimary,
itemsContainerStyle: {
marginVertical: 0,
},
iconContainerStyle: {
opacity: 1
}
}
});这位是你的农民导航员
const AsanZeraatNavigator = createStackNavigator({
ShowLand: ShowLandScreen,
ShowOrder: {
screen: ShowOrderScreen,
path: 'showorder/:params'
},
SubmitRating: {
screen: SubmitRatingScreen,
path: 'submitrating/:params',
}
});https://stackoverflow.com/questions/62262260
复制相似问题