【问题标题】:How to redirect to React Native Expo app from Webview after Stripe payment?Stripe 付款后如何从 Webview 重定向到 React Native Expo 应用程序?
【发布时间】:2020-05-19 22:11:07
【问题描述】:

我目前正在使用 React Native Expo 开发一个移动应用程序。为了避免分离,我在 WebView 中使用 Stripe 仅限客户端的结帐页面。

我的问题是如何将成功/取消的付款从 WebView 重定向回我的应用程序中的特定屏幕?

【问题讨论】:

  • 批准的绿色勾号是表示已为提问者解决问题的标准方式;无需添加“[已解决]”或类似的内容。您可能已经知道,因为没有其他问题有(除非他们这样做;那么它将被删除)。

标签: react-native webview stripe-payments expo deep-linking


【解决方案1】:

我遇到了类似的问题 - 如果您提前知道重定向 url 的样子......这就是我所做的......所以在我的例子中,让我们调用我的 url http://google.com

   render() {
      return (
      
       <WebView
         onNavigationStateChange={ 
             (e) => { 
               if(e.url == "https://www.google.com/") this.props.navigation.navigate("NewsFeed")
             }
          }
       source={{ uri: 'https://a-url-to-load' }} style={styles.WebView} />
      )
   };
  }

当然你应该提取那个函数来做更复杂的事情......等等

【讨论】:

  • 谢谢!正如接受的答案中所建议的,这比深度链接回应用程序要简单得多。
【解决方案2】:

我认为你想要在这里做的是使用Deep Links 作为返回 URL,它应该允许你回到应用程序 - 你可以使用路径来指定它应该到达的确切位置。

【讨论】:

  • 我是否需要脱离 expo 才能使用深度链接?
  • 我不确定你的意思,但深度链接提供了一种返回应用程序特定位置的方法(假设你有一个处理程序),所以你必须在您的应用之外使用它...?
  • 不幸的是,深层链接似乎不适用于条带。它不会注册为有效的successUrl。相反,我想尝试劫持返回的 url 并在加载之前从我的 WebView 导航回屏幕。关于如何做到这一点的任何想法?
  • 哦,是的,好吧 - 它可能不适用于 Checkout,这很公平。您可能想要在这里做的是有一个可以重定向到的服务器端 URL,然后将重定向回深层链接。
  • 是的!这就是我最终做的。有一个 EC2 实例侦听基于路径 /successful 和 /cancelled 重定向的请求。感谢您的帮助!
猜你喜欢
  • 2021-10-21
  • 2020-01-25
  • 2021-09-09
  • 2015-03-03
  • 2021-01-13
  • 2022-01-19
  • 2017-02-27
  • 2018-12-06
  • 2018-11-29
相关资源
最近更新 更多