在React Native WebView中打开HTML中的链接

时间:2019-09-12 07:42:57

标签: react-native url webview

我成功渲染了HTML文件以使用react-native-webview进行查看。当我单击视图中的链接时,它可以完美地加载到同一视图的IOS上。但是该链接在Android上不起作用。它显示“由于拒绝权限,因此无法下载文件。请提供写入存储的权限,以便下载文件

我试图将这行代码添加到AndroidManifest.xml <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />中,但是它作为文件下载到手机中,而不是从WebView的角度下载。我想念什么?

<WebView
    originWhitelist={['*']}
    source={ Platform.OS === 'ios' 
            ? this.renderHTML(content)
            : this.renderHTMLAndroid(content) 
           }
    domStorageEnabled
    javaScriptEnabled
/>

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。它不会在webview视图中呈现,而是在浏览器中打开链接(适用于Android)。这并不是我真正想要的,但至少它能起作用。

import { Linking } from 'react-native'

loading = (event) => {
       if (event.url.slice(0,4) === 'http') {
           Linking.openURL(event.url)
           return false
       }
       return true
}

然后在WebView中添加

onShouldStartLoadWithRequest={ Platform.OS === 'ios'
                               ? null
                               : this.loading
                             }