问题标签 [ios8-share-extension]

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.

0 投票
4 回答
2578 浏览

ios - 共享扩展在 Chrome 中不起作用

我正在处理共享扩展

这是 info.plist 文件的代码。这在 Safari 中运行良好,但在 Chrome 中却不行。

任何想法?如何在 Chrome 中启用共享扩展

0 投票
0 回答
43 浏览

ios - iOS - 在使用同一应用程序的特定设备组之间共享数据(和数据更新)

举个简单的例子,如果一个应用程序可以显示照片并且有人拍摄了一张新照片,那么在预先创建的同一组(如果可以这样分组)中拥有相同应用程序的其他人将获得新照片的更新 - (照片列表会改变,应用程序会相应地处理)(并通过推送通知或其他一些自动“更新”进行更新)。这对于编辑照片和更新照片以及其他人获取该更新也很有用。

我想知道有哪些可用选项(目前仅适用于 iOS 8+ 解决方案):

  1. 让某人下载一个应用程序并“邀请”其他也下载了该应用程序的人加入他们的组 - 这样他们就可以按照我所描述的方式收到对该应用程序的任何添加或更新。我真的不想为此知道其他人的电子邮件地址。寻找另一种选择。

  2. 在组成员之间共享这些数据(这个解决方案可能取决于#1,我不确定)。

我在这里阅读了 NSUserDefaults 或钥匙串分组等解决方案,但由于我们在这里讨论图像并且取决于#1,因此可能有其他更好的解决方案。

0 投票
1 回答
1275 浏览

ios - 从 Safari 共享扩展中获取 HTML?

在共享扩展中,我设法使用以下代码获取了 Safari 页面的 URL:

我还可以获得页面的 HTML 吗?

0 投票
1 回答
1174 浏览

ios - iOS 共享扩展激活规则不应该用于 public.url 类型时触发

我有一个带有共享扩展的 iOS 应用程序。共享扩展使用“谓词语法” NSExtensionActivationRule plist 设置。这是使用的谓词字符串。

目标是匹配具有一个 URL 的内容,而不管它具有哪些其他属性。不幸的是,在某些情况下,这似乎与没有任何 URL 的内容相匹配(由类型 ofpublic.url或任何符合它的东西定义)。

出于一个简单示例的目的,我用这个简化的类替换了视图控制器。

这个类所做的只是打印每个共享项目附件的类型。大多数时候,我得到我所期望的一个附件有一个public.url类型。这是 iOS Chrome 应用程序中网页的示例。

对于没有 URL 的内容,通常(如预期的那样)共享选项不可用。如果我将其更改为NSExtensionActivationRuleTRUEPREDICATESimplenote 共享笔记文件时可以看到这样的示例。

不幸的是,我在 NYT Now 应用程序中遇到了一个案例,其中我的原始谓词确实匹配,但内容没有任何类型的附件public.url(或任何符合public.url列表的类型)。这是分享 NYT Now 故事的日志输出。

我无法弄清楚为什么我的扩展会出现在这个内容中,因为既不public.image也不public.plain-text符合public.url. 纯文本项中确实有一个 URL,但也有一堆其他非 URL 文本。

我很想弄清楚为什么我的扩展程序的谓词与此内容匹配以及如何停止它(或者甚至更好,如果在某个地方实际上有一个我找不到的 URL)。

如果我为 NYT Now 故事使用字典NSExtensionActivationRule并设置NSExtensionActivationSupportsWebURLWithMaxCount=1扩展名(正确),那么问题似乎出在谓词规则上。

0 投票
1 回答
608 浏览

ios - 从 Share Extension 打开 Container App

因此,我发现您无法从 iOS 中的 Share Extensions 打开 URL(因此也无法打开深层链接)。但我想知道是否有任何方法可以打开扩展的容器应用程序。

例如,在我的应用程序中,共享扩展仅在您登录时才起作用,因此,如果您点击扩展,它将显示一个警报视图,告诉您这一点。但我希望该警报视图上的按钮可将您带入容器应用程序,以便更轻松地登录。

希望这是有道理的,并提前感谢!

0 投票
1 回答
509 浏览

ios - 如何制作具有默认文本的 iOS 8 共享扩展

在我的应用程序中,屏幕上的标签中显示了文本。

我有一个分享按钮,当按下时会带来 UIActivityViewController 但是当你按下分享扩展例如 Twitter 时,你会得到一个里面什么都没有的撰写视图。

我希望它将屏幕上标签中的文本放入撰写视图中。

0 投票
1 回答
46 浏览

ios - 如何制作具有默认文本的 IOS 8 共享扩展

在我的应用程序中,屏幕上的标签中显示了文本。

我有一个分享按钮,按下时会带来 UIActivityViewController 但是当你按下分享扩展名时:Twitter,你会得到一个里面什么都没有的撰写视图。

我希望它将屏幕上标签中的文本放入撰写视图中。

0 投票
0 回答
540 浏览

ios - iOS 应用扩展异常处理

NSException在应用程序扩展(例如共享扩展)中引发 an 时,似乎这只是挂起主机应用程序(例如 Safari)。

异常处理程序也不起作用,如下所示:

引发异常只会导致此控制台条目:

来自 pid 5922 的连接:警告:在解码收到的对消息“_loadItemForPayload:contextIdentifier:completionHandler:”的回复时捕获异常,丢弃传入消息并调用失败块。

所以扩展以某种方式在内部捕获了异常,但仍然无限期地冻结主机应用程序(很可能是因为completeRequestReturningItems:completionHandler:没有在视图控制器上调用?)。

iOS 错误?

0 投票
2 回答
10674 浏览

ios - 在共享扩展和 iOS 应用程序之间共享文件路径/文件的代码

我已经为我的应用添加了一个共享扩展,比如 SAMPLE(已经存在于应用商店中),称为 SAMPLESHARE。每当用户拍照并尝试分享时,我希望他们通过 Open In 功能的视图控制器,而不是从 Apple 获得 Post 对话,基本上绕过它。所以我试图在共享扩展和我的应用程序之间共享图片,方法是创建一个在应用程序和插件之间共享的应用程序组,然后将文件路径传递给我的应用程序的应用程序委托的 openURL。

所以在我的主要应用程序委托中,我有

如果我有一个需要打开不同流程的 URL 文件路径,基本上我每次都使用它来检查。

在我的 SHAREEXTENSION 中,我有

我的扩展名 info.plist 是

我基本上使用了一些互联网上的公共许可证代码(知名网站),声称已经通过了应用商店的审核流程。

代码中有两种解决方法,一种是从共享扩展中调用 OpenURL(从搜索 SO 看来,如果没有 iOS 8.3 及更高版本的解决方法,这似乎仍然是不可能的),第二种是隐藏帖子对话框和键盘当任何人点击分享时,苹果默认提供。这行得通。

我有两个问题

更新:

因此,通过文档搜索,我找到了问题 2 的修复方法,并对其进行了更改。现在一切正常,没有TRUEPREDICATE,商店会接受这个还是有其他方法可以做到这一点?

更新 2:

我现在习惯NSUserDefaults将数据从扩展程序传递到应用程序,猜想这也是共享数据的一项要求。

0 投票
2 回答
1289 浏览

ios8 - NSExtension 共享扩展限制 照片计数

我开发了一个共享扩展并从照片和笔记应用程序中导入照片和笔记。我想将可以导入的照片数量限制为 10,但对于照片,我可以选择无限的照片。以下是来自扩展名 info.plist 的查询。任何人都可以调查它并指导我更正查询。