1

我正在使用外部 url 来处理我的 react-native 应用程序的身份验证。我将用户发送到带有 loginurl 的 webview。以下是我的 Signin.tsx 代码的片段:-

 <WebView
            cacheEnabled={false}
            source={{uri: this.state.loginUri}}
            onNavigationStateChange={this.onNavigationStateChange}
            incognito={true}
/>

'incognito' 属性在 iOS 上完美运行,但在 Android 上似乎根本不起作用。我的目标是让 Webview 在其生命周期内不保存任何数据。登录中有多个页面,输入一个详细信息后,它会自动获取先前登录帐户的详细信息并使用旧凭据自动登录。

我已经尝试将 react-native-webview 更新到最新的(v11.3.1)并且还尝试了 CookieManager.clearAll() {used from react-native-community/cookies}。似乎没有任何效果。有人可以帮助我理解为什么它适用于 iOS 而不是 Android 吗?

4

1 回答 1

0

我们遇到了类似的问题,在谷歌搜索后发现了Tapani 的答案,所以根据他的说法,实际的实现是不同的,所以它们的行为因操作系统而异。不幸的是, API 文档中没有提到这一点。

在我们的情况下,如果在 Android 上将隐身道具设置为 true,则应用程序无法正常工作,如果设置为 false,则在 iOS 上也无法正常工作,因此如果是这种情况,您也可以检查平台并相应地设置道具:

<WebView
   cacheEnabled={false}
   source={{uri: this.state.loginUri}}
   onNavigationStateChange={this.onNavigationStateChange}
   incognito={Platform.OS === 'ios'}
/>
于 2021-07-29T09:57:55.690 回答