在这里你可以看到网页视图组件。当页面加载点击href标记文件需要下载在android
<WebView
ref={webViewRef}
style={styles.webv}
source={{
uri: {{Domain_URL}},
}}
onMessage={onWebViewMessage}
onError={onWebViewError}
onLoadStart={onWebViewLoadStart}
onLoad={onWebViewLoadEnd}
javaScriptEnabled
domStorageEnabled
setBuiltInZoomControls={false}
/>
3条答案
按热度按时间oogrdqng1#
我认为你应该在不使用webview的情况下改变逻辑。在本地语言(Swift/Java)中,WebView也有类似的问题,这意味着我们无法使用react-native-webview实现该功能。
所以,请尝试与rn-fetch-blob.我想建议你“rn-fetch-blob”下载文件,并使用“fs”存储在Android文件系统.
也许你可以得到文件系统中的本地网址。
然后,在webview上加载带有上述本地url的文件。
j8ag8udp2#
我想在这里提一下,请检查您的Content-Disposition响应头值。如果它是
inline
,那么它将不会被下载,您将不得不使用rn-fetch-blob
包手动完成它,或者您将能够根据您的URL提供渲染它。如果它是attachment
,那么react-native-webview将自动为您下载它,而无需任何额外的代码。上述行为在iOS中的工作方式不同,因为它不处理Content-Disposition标头,因此所有文件格式都将在iOS Webview中呈现,而无需下载,这与Android不同。
nfeuvbwi3#
这可能会有所帮助: