gpt4 book ai didi

google-drive-api - 某些文件扩展名总是显示为禁用通过 iOS 的选择器查看 Google 云端硬盘

转载 作者:行者123 更新时间:2023-12-02 01:30:10 31 4
gpt4 key购买 nike

我们正在使用 iOS 的 UIDocumentMenuViewController/UIDocumentPickerViewController API,但这个问题只发生在 Google Drive 上,所以我将从这里开始。如果您认为我们应该改为向 Apple 发送错误报告,请告诉我。

在我们的应用程序或最小的单 View 应用程序中,我们显示文档菜单,然后显示选择器。当我们查看 Google Drive 时,带有某些扩展名(iges、sldprt、STL)的文件总是显示为禁用。其他常见扩展(tiff、jpg)和 CAD 相关扩展(sat、x_t、step)工作正常。

无论文件为空、包含 JPG、包含 CAD 数据等,都会发生这种情况。

Dropbox 不会发生这种情况——只有 Google Drive 才会发生这种情况。

Here’s a shot of how Drive looks下面是一些(我希望是最小的)示例代码。

谢谢,

-- 迈克

- (void)pick {
UIDocumentMenuViewController *importMenu =
[[UIDocumentMenuViewController alloc] initWithDocumentTypes:@[(NSString *)kUTTypeItem]
inMode:UIDocumentPickerModeImport];
importMenu.delegate = self;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
[self presentViewController:importMenu animated:YES completion:nil];
}
else
{
UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:importMenu];
[popup presentPopoverFromRect:CGRectMake(100, 100, 200, 200)
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
}

最佳答案

由于这适用于内置的 iCloud Drive 选择器,我担心这是 Google Drive 选择器中的错误。他们必须确保通过 UTTypeCreatePreferredIdentifierForTag 从文件扩展名创建标签来测试对传入 UTI 的一致性;然后他们必须检查该 UTI 是否符合其中一个请求。

顺便说一句,您在代码示例中呈现 View Controller 的方式非常单一。更好的方法如下:

UIDocumentMenuViewController *importMenu = [[UIDocumentMenuViewController alloc] initWithDocumentTypes:@[(NSString *)kUTTypeItem] inMode:UIDocumentPickerModeImport];
...

[self presentViewController:importMenu animated:YES completion:nil];
vc.popoverPresentationController.sourceView = self.view;
vc.popoverPresentationController.sourceRect = CGRectMake(100, 100, 200, 200);

这摆脱了丑陋的 if(idiom) 语句。

关于google-drive-api - 某些文件扩展名总是显示为禁用通过 iOS 的选择器查看 Google 云端硬盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34744770/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com