问题标签 [uiactivity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 限制 UIActivityViewController 共享扩展活动
我正在使用UIActivityViewController
几个自定义 UIActivityProviders。我的提供程序返回NSString
、UIImage
和自定义数据对象。UIActivityViewController excludedActivityTypes
我通过设置和 Apple 的内置活动类型排除了我不想共享的活动。
我不喜欢的是出现在呈现的 UIActivityViewController 上的应用程序,这些应用程序不是在活动类型中构建的。我假设这些出现是因为应用程序已经通知 iOS 8 他们可以处理文本和图像数据。例如 Flickr、Evernote 和 FaceBook 的共享扩展。这些活动有自己的活动 URL 类型,我不想对其进行硬编码。
我不希望在我的活动共享中使用这些应用程序的原因是大多数都不能正常工作,最终给我的用户带来糟糕的体验,并可能将我的应用程序实施不当归咎于我的应用程序。现实情况是,这些应用程序无法处理他们声称可以处理的数据。例如,Evernote 总是只显示一个空的帖子对话框。有些,比如 Facebook 的共享扩展,如果他们无法处理数据类型(真的吗?),甚至会记录错误。
是否可以阻止所有第 3 方共享扩展程序?
如果答案是否定的,我似乎只有两个选择:
- 仅与 Apple 的内置活动和我的自定义活动共享
- 允许 3 方分机搞砸手
- 将我所有的内容包装在一个自定义类中,这样扩展就无法识别它。这会从 Facebook 生成一个记录错误
困难来自initWithPlaceholderItem:(id)placeholderItem
。我传回了一个通用的 NSString 或 UIImage ,扩展程序说它们可以处理,但通常不会或在发布时记录错误。这将是一个检测共享扩展的可怕地方。
我想为我的用户提供最灵活的共享体验,但不以糟糕的第三方实施为代价。
我知道我们喜欢在 SO 上显示代码,但想不出任何不仅仅是样板UIActivityController
素材。
ios - 防止第三方扩展出现在应用程序的打开方式列表中
在我的应用程序中,我在共享表中实现了一个名为 Open In 的自定义活动,点击此图标将生成一个 .txt 文件并显示能够打开和使用此生成的 .txt 文件的应用程序列表。iOS 会自动在共享表中每个应用程序的名称前添加“打开方式”。
但是现在第三方开发人员已经实现了共享扩展,出于某种原因,这些扩展也出现在了这个 Open In 界面中。例如,Twitter 出现了,但是当我点击它时,.txt 文件中的文本不会出现在撰写窗口中。因此,这些第三方共享扩展在这个界面中是完全没用的。另外,它们已经出现在原始共享表中(并且它们在那里工作) - 用户点击了打开方式,因此他们只关心可以打开 .txt 文件的应用程序。
如何确保在此自定义活动中仅提供 Open In 应用程序?
ios - 自定义 UIActivity 显示空白屏幕
我有一个自定义 UIActivity,它在调用方法 - (UIViewController *)activityViewController 时返回 UIViewController。但它在点击活动后最终显示一个空白的黑屏而不是 UIViewController。知道有什么问题吗?
这是我在自定义 UIActivity 中的代码:
ios - 提供的未知活动项目:(“")
我正在使用 UIActivityViewController 的子类来显示自定义 UIActivity。
当控制器显示时,我得到
在我的日志中。
MyClass 是 NSObject 的子类,并通过点击我的 UIActivity 传递给新的 ViewController。
我试图在 MyClass 上实现协议 UIActivityItemSource,但它没有解决问题。
MyClass 对象作为activityItems参数在数组中传递给 [UIActivityViewController init] ,这应该不是问题,因为文档只说:
要对其执行活动的数据对象数组。数组中的对象类型是可变的,并且取决于您的应用程序管理的数据。例如,数据可能由一个或多个表示当前所选内容的字符串或图像对象组成。
编辑:
这是我可以分享的代码:
ios - 在 iOS 应用中打开
我必须设计一个iOS应用程序,它将下载一个pdf文件,并且会有一个“打开” UIActivityViewController
(UIActivity
子类化)。使用OpenUrl
我将数据发送到另一个应用程序,我可以在第二个应用程序中获取pdf数据。
但我也希望 Safari 具有相同的功能。我想在 Safari 中查看第二个应用程序“打开方式”,一旦用户在 Safari 中获得一些 pdf,用户可以单击打开方式在第二个应用程序中获取 pdf 数据。
有什么建议怎么做吗?
ios - ios:让人们将链接/图像/文本分享到我的应用程序
如何让我的应用程序出现在 Safari、照片等的共享活动列表中?我想让人们通过我的应用程序分享链接/图像或文本,就像他们在 facebook 上一样。
Facebook/Twitter 等在默认UIActivityType
列表中可用,但 Pinterest、Zomato 等其他应用程序如何实现这一点?
ios - 从 UIActivity 中删除 CollectionView 中的对象
我在尝试UICollectionView
从我自己的UIActivity
.
文件集合控制器.h
此集合视图使用文件路径来显示图像。
文件集合控制器.m
ActivityTrash.h
ActivityTrash.m
文件实际上已被删除。但问题是我想在完成后立即调用[self.collectionView reloadData]
我的FilesCollectionControllerUIActivity
,所以我的集合视图会立即更新......
ios - UIActivityViewController Activity Items 的出现顺序
我有一个UIActivityViewController
with 系统活动以及 Custom UIActivities
。我可以按UIActivityViewController
特定顺序显示项目吗?即我希望自定义 UIActivity 首先出现在系统活动前面的活动项列表中,例如UIActivityTypeSaveToCameraRoll
.
ios - 这两个用于 Facebook 分享的 UIActivityType 有什么区别?
当我在 iOS 应用程序中通过 Facebook 共享内容时,在方法内部
这activityType
适用com.facebook.Facebook.ShareExtension
于某些设备,也com.apple.UIKit.activity.PostToFacebook
适用于其他设备。
我什么时候能见到他们每个人?我测试的每台设备都安装了 Facebook 应用程序。
ios - iOS 7 & 8 自定义 activityImage 差异
从 iOS 7 开始,我们已经包含了自定义的 activityImages,用于通过UIActivity
组件进行共享。根据这份Apple 官方文档,它指出每个非透明像素都将被灰色渐变覆盖。我们使用的图像主要是透明的(透明像素变成白色),除了有用的部分(变成灰色)。
如果我在 iOS 8.4 上的最新 XCode 中运行相同的应用程序,这似乎是不同的。Apple 在 iOS 7 中使用灰色叠加层限制了颜色的使用,但在 iOS 8 中显然没有。这导致基于设备上运行的 iOS 版本的 2 个不同图像。我似乎找不到有关此更改的任何文档。官方文档也没有被改编。所以我不确定这是苹果相关的错误还是功能。
当我想使用自定义 activityImages 时,我真的必须支持 2 种不同类型的图像(一种用于 iOS 7,一种用于 iOS 8)吗?
如果有人可以参考这方面的更多信息,请这样做。