为啥 React Native WebView 在发布版本中转到 about:blank?

Posted

技术标签:

【中文标题】为啥 React Native WebView 在发布版本中转到 about:blank?【英文标题】:Why does React Native WebView go to about:blank in release build?为什么 React Native WebView 在发布版本中转到 about:blank? 【发布时间】:2017-11-16 07:34:54 【问题描述】:

我有一个这样的组件:

class PayPalWebView extends Component 
  static propTypes = 
    payKey: PropTypes.string,
    payPalLoginUrl: PropTypes.string,
    onNavigationStateChange: PropTypes.func,
  

  getPayPalLoginURL = () => this.props.payPalLoginUrl + this.props.payKey

  render () 
    return (
      <WebView
        source= url: this.getPayPalLoginURL() 
        scalesPageToFit=true
        onNavigationStateChange=this.props.onNavigationStateChange
      />
    )
  

我用它来处理我的 react 本机应用程序中的 PayPal 支付的登录流程。

模拟器中的开发版本可以正常工作并正确打开 PayPal 登录页面。 当我在模拟器中切换到发布构建配置时,它不再工作,只打开 about:blank。

该问题同时出现在 androidios 上。然而,它今天早上突然开始在 iOS 上工作,而我没有改变任何东西。

我已确认getPayPalLoginURL 的输出正确,并将WebViewsource 属性设置为固定值。还尝试了不同的值,例如 url: "https://example.com" 以确保它与 PayPal URL 无关,但它再次仅在发布版本上失败。

我还发现了其他 SO 问题,人们建议在 WebView 上设置固定宽度,但也没有用。

非常感谢任何修复或调试的建议。

【问题讨论】:

【参考方案1】:

替换

source= url: this.getPayPalLoginURL()

source= uri: this.getPayPalLoginURL()

检查this

【讨论】:

哇!就是这样。我不敢相信。甚至没有考虑过仔细检查,因为它在具有开发设置的模拟器中工作得很好。谢谢! (编辑:明天我会奖励它,只要时间限制到了) 这仅在 Android 上发生在我身上,onNavigationStateChange 正在返回 url “about:blank” - 感谢您将这个答案链接到其他一些 SO 帖子中。世博会 4.4.4 ; “react-native-webview”:“11.2.3”

以上是关于为啥 React Native WebView 在发布版本中转到 about:blank?的主要内容,如果未能解决你的问题,请参考以下文章

webstorm中的react语句为啥没有提示

WebView(react-native-webview)在 Expo SDK36 中获取错误代码 -1

React Native WebView 状态栏

React-native:如何自动保存 webview 当前网页?

有啥方法可以在 react-native-webview 中禁用 hapticFeedback

如何在 iOS 的 WebView(react-native-webview) 中设置自定义字体?