Linking.getInitialURL 不断被执行和应用被复制

Posted

技术标签:

【中文标题】Linking.getInitialURL 不断被执行和应用被复制【英文标题】:Linking.getInitialURL constantly being executed and app being duplicated 【发布时间】:2017-08-18 09:09:28 【问题描述】:

对不起,冗长的标题。

这是我的componentDidMount() 函数

componentDidMount() 
  Linking.getInitialURL().then(data => 
    console.log(data);
  );

当我启动我的应用程序时,data 正确设置为 null

用户然后通过谷歌浏览器登录,该浏览器通过以下方式打开

Linking.open('https://...);

当用户被重定向回我的应用程序时,我可以看到 data 已被填充。这一切都很好。

但是,当我被重定向回来时,我看到了重复的组件。这是来自 React Native Debugger 的屏幕截图。我有<AppContainer root=1..><AppContainer root=11..>

由于这种重复,我的应用程序调用了两次componentDidMount(),并且多次调用了Linking.getInitialURL()

此外,如果我通过开发者菜单刷新应用程序,则从 Linking.getInitialURL 的 promise 返回的 data 仍然填充,而它应该是 null

【问题讨论】:

【参考方案1】:

解决此问题的方法是将android:launchMode="singleTask" 添加到我的.MainActivity 活动中。

在this Github 线程上找到解决方案。

【讨论】:

以上是关于Linking.getInitialURL 不断被执行和应用被复制的主要内容,如果未能解决你的问题,请参考以下文章

ViewDidLoad 不断在 UIPageViewController 上被调用

Alamofire 不断被取消

Wordpress 网站不断被黑客入侵

MessagePushed 不断被调用

React Native onPress 函数不断被调用

Android 应用因 Android 广告 ID 政策而不断被拒绝