我使用 React Native 构建了一个 Android 应用程序。在应用程序内我正在使用
react-native-webview
包来显示 React 应用程序。
import {WebView} from 'react-native-webview';
<WebView
useWebKit={true}
source={{
uri: 'https://myappurl.com',
}}
style={{flex: 1}}
/>
我已经在 andoid 清单中设置了
android.permission.WRITE_EXTERNAL_STORAGE
权限,并在 gradle 属性中设置了 android.useAndroidX=true
和 android.enableJetifier=true
。然而,当我在反应应用程序中复制某些内容或下载文件时,它不会在设备级别发生。如果我在网络浏览器中独立运行 React 应用程序,我就可以复制和下载。
根据
react-native-webview
的文档,不需要做任何其他事情,并且应该内置此功能。可能是什么问题?
如果有人仍然偶然发现这个答案:我发现这个Github答案完美解决了问题(甚至使用
navigator.clipboard.writeText(...)
),方法是在网站一侧用JS推送一条消息,然后在React Native代码中捕获它然后使用 Clipboard
社区模块复制文本。
发现问题了。对于复制,我使用
navigator.clipboard
api,对于下载,我使用 blob 对象。 Web 视图仅支持 document.execCommand()
api 进行复制,下载仅支持通过 Content-Disposition: attachment;
标头下载。