小编Tet*_*trΔ的帖子

从内容 uri 读取文件时出现权限错误

我一直在尝试制作一个简单的文档选择器,允许用户选择一个文件并返回以 base64 编码的所选文件。为此,我目前使用两个包:

这是这段特定的代码:

    DocumentPicker.pick({
        type: [DocumentPicker.types.allFiles]
    })
    .then(res =>
    {
        RNFS.readFile(decodeURIComponent(res.uri), "base64").then(result =>
        {
            console.log(result)
        })
    })
    .catch(error =>
    {
        console.log(error)
    })
Run Code Online (Sandbox Code Playgroud)

从“下载”文件夹中选择文件时效果很好,但是,当我尝试从“最近”文件夹或与我的应用程序无关的任何文件夹中选择文件时,readFile 失败并出现错误:

权限拒绝:从 pid=22663、uid=10471 读取 com.android.providers.media.MediaDocumentsProvider uri content://com.android.providers.media.documents/document/image:105724 需要 android.permission.MANAGE_DOCUMENTS 或 grantUriPermission ()

据我所知,MANAGE_DOCUMENTS是一个“签名”权限,不能添加到manifest.xml中或由react Native android权限API授予。

有什么方法可以授予或传递react-native-fs此权限,或者我可以使用任何解决方法来选择任何文件而不会出现错误?我这样做错了吗?我尝试使用react-native-get-real-path从内容uri中获取文件uri并获取内容uri以获取blob,但它似乎不起作用。

谢谢

android react-native

1
推荐指数
1
解决办法
4717
查看次数

有没有办法在带有过时版本的Xcode和macOS的iOS 12.2上运行应用程序?

我正在开发一个React Native应用程序,该应用程序可以使用Xcode在真实的iPhone 7上进行测试和构建。但是,iPhone最近自动更新到了iOS 12.2,它需要Xcode版本10.2。问题是我无法更新Xcode,因为我的Mac运行在High Sierra 10.13.6上,并且版本太旧,无法获得Mojave更新(2011)。

所以问题是:我仍然可以使用Mac在我的真实设备上运行该应用程序吗,还是我被迫从现在开始使用仿真器/购买新的Mac?最重要的是,有没有办法让我仍然可以在旧Mac上获得Mojave更新?

macos xcode ios

0
推荐指数
1
解决办法
476
查看次数

标签 统计

android ×1

ios ×1

macos ×1

react-native ×1

xcode ×1