问题标签 [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 投票
2 回答
2057 浏览

ios - 如何在 iOS 共享扩展中正式处理未经身份验证的用户?

也就是说,Apple规定的惯用方法是什么?对于任何建议,请解释应该如何做和/或提供官方指南的链接。这应该是一个足够常见的场景,但我只能找到解决方法。

从另一端接近这一点,我知道UserDefaults(suiteName:)并且Keychain services可以从包含的应用程序中使用它来与扩展程序共享有关经过身份验证的用户的信息,但是如果用户安装了应用程序并直接尝试使用其扩展程序共享内容而没有曾经登录(或注册)?

  1. 要求用户登录包含的应用程序?(在自定义视图中?扩展默认是模态的。

  2. 在扩展中重新实现身份验证?(或者通过自定义框架共享?这可能吗?)

  3. 切换到包含应用程序然后返回?除了 Today 扩展外,这似乎不受支持,但文档中描述的机制已用于解决方法(SO 线程:123)。


使用 Firebase在此答案中的第 2 项的(丑陋)示例实现。

0 投票
2 回答
1036 浏览

ios - 如果 NSExtensionActivationRule 设置为仅用于音频,则共享扩展不会出现在支持的应用程序中

我正在尝试创建一个共享扩展,用户可以在其中从任何有能力的应用程序上传她的录音。该文档甚至有一个简单的示例(请参阅Declaring Supported Data Types for a Share or Action Extension)(也在此 SO 答案中提出),但它不适用于任何录音机(在 iOS 10.3.3、iPad 上)。

看着统一类型标识符参考,我需要public.audio。共享扩展中的相关条目Info.plist

![在此处输入图像描述

为了缩小范围,我尝试更改NSExtensionActivationRulepublic.mpeg4and public.audiovisual-content,结果相同。

当我更改NSExtensionActivationRule为符合时public.image,它会显示在照片应用程序中:

更改NSExtensionActivationRuleTRUEPREDICATE字符串也会使其最终出现在音频应用程序中,但当然,这不会在 App Store 中被接受。

我还尝试了干净启动的上述每个步骤(即干净 + 干净构建文件夹 + 删除 DerivedData 内容 + 从 iPad 中删除应用程序),但结果相同。

这个 SO question似乎也很相关,但更改共享扩展的部署目标并没有帮助。

我错过了什么吗?

0 投票
2 回答
2477 浏览

ios - iOS 分享扩展 - 发送大视频

所以我正在尝试发送一个大的视频文件(超过 100 mb),每当我使用 访问视频文件时dataWithContentsOfURL,扩展都会终止。这适用于较小的文件。

我应该如何解决它?

0 投票
0 回答
222 浏览

objective-c - 我现有的通用项目没有显示共享扩展

我正在向现有的通用应用程序添加共享扩展,但它从未出现在共享菜单中。xcode 9.3 ,父应用和扩展 9.3 的部署目标

添加xcode的步骤

  1. 文件 -> 新建 -> 目标 -> 共享扩展
  2. 共享扩展的所有证书+自动包含应用程序。
  3. 为机器人应用程序和扩展启用应用程序组。
  4. 为应用程序和扩展程序选择相同的应用程序组。
  5. 使用 safari 构建应用程序。

构建成功,并且 safari 可以正常打开,但在共享表上看不到我的应用程序扩展。

然后使用上述相同的步骤创建新的示例应用程序,它可以正常工作。

我试图解决问题的事情

  1. 创建了新的应用程序组。
  2. 部署目标更改为 11.3
  3. 更改激活规则

我需要你的宝贵建议。提前致谢。

0 投票
0 回答
69 浏览

ios - 我可以以编程方式将我的应用程序放在共享菜单的首位吗?

作为标题。我可以以编程方式将我的应用程序放在共享菜单的首位吗? 在此处输入图像描述

0 投票
0 回答
687 浏览

ios - 分享扩展iOS,如何在活动表视图中启用我的应用程序?

我为我的应用程序创建了一个共享扩展,它工作正常。ActivityView但我的应用程序默认禁用。如何启用我的应用程序,ActivityView以便用户在首次安装我的应用程序时可以在共享表中看到我的应用程序?

我不知道这是否可能,但看看应用程序LINE,每次安装它时它总是启用的。

在此处输入图像描述

0 投票
1 回答
409 浏览

ios - 如何在共享扩展中集成 Fabric/Crashlytics

我已经在我的应用程序中集成了 Fabric,它运行良好。对于扩展集成,我遵循了 2-3 个链接,但似乎没有任何效果。

这是我尝试过的:

在 Podfile 中添加了这些行:

在 Info.plist 文件中添加了这些属性:

在此处输入图像描述

在共享扩展的视图控制器中,我添加了以下几行:

我在集成中缺少什么吗?

0 投票
1 回答
1639 浏览

ios - 分享所选文本 - iOS 分享扩展

我希望能够共享选定的文本,但我的扩展仅在单击共享图标时出现(然后它使用页面标题填充字段)。我希望我的扩展在用户选择文本并单击“共享...”时出现(如下图所示),然后我希望它用所选文本填充文本区域。

我希望在这里可以访问扩展

共享视图控制器:

Action.js(JS 预处理)

信息列表

0 投票
1 回答
666 浏览

ios - 活动视图中的ios“复制到myApp”

我正在开发共享扩展。

我在 info.plist 中添加了 NSExtensionActivationRule。当我的应用程序匹配文件类型时,它会出现在活动视图中。

但是在某些应用程序(并非全部)中尝试共享图像(例如谷歌驱动器..)这个(复制到*)图标在我开始开发之前已经在活动视图中。所以我在活动视图上有两个我的应用程序图标/我创建的第一个,第二个已经在其中。

我尝试在 plist 中更改其他属性,但它们都不能正常工作

我想消失“复制到 MyApp”让我知道有人知道这一点。

在此处输入图像描述

0 投票
0 回答
204 浏览

ios - NSItemProvider loadItemForTypeIdentifier 导致内存泄漏?

我有以下问题:

我正在尝试将 Messenger 中的图像(我已实现共享扩展)共享到我的应用程序,并且我正在使用此代码加载图像:

其中标识符是(NSString*) kUTTypeImage。由于某种原因,这导致了泄漏或类似的事情 - 它正在进入didReceiveMemoryWarning。请注意,仅当我尝试使用 Messenger 共享图像时才会发生这种情况,如果我尝试从照片应用程序共享它,它工作正常。有人可以给我一个想法来解决这个问题吗?