问题标签 [imessage-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 投票
1 回答
59 浏览

ios - 点击消息不会打开 AppStore 中的应用页面

我开发的包含 iMessage 扩展的应用程序最近在 AppStore 中发布。当我向未安装此应用程序的人发送带有我的扩展程序的消息时,他们点击消息,并获得 AppStore 视图,在“精选”页面打开。根据文档,它应该打开我的应用程序页面。

是否需要任何条件才能工作?关于捆绑包 ID、名称、权利等任何要遵循的规则?

它似乎适用于其他应用程序。

0 投票
1 回答
42 浏览

ios - Swift3 中的 SKScene 和 URLQueryItems?

好的,我是 URL 查询和 Swift 整个方面的新手,需要帮助。照原样,我有一个 iMessage 应用程序,其中包含和SKScene. 为了让用户轮流玩游戏,我需要在 1 个会话内来回发送游戏,正如我在这里学到的:https ://medium.com/lost-bananas/building-an-interactive-imessage-application -for-ios-10-in-swift-7da4a18bdeed

到目前为止,我的场景都在工作,但是我倾注了 Apple 的冰淇淋演示,他们在其中来回发送连续制作的冰淇淋,我无法理解如何“查询”我SKScene的所有内容,以便发送场景。

我不清楚URLQueryItems 是如何工作的,因为文档与 sprite kit 场景无关。

苹果在当前状态下查询他们的“冰淇淋”,​​如下所示:

但我不知道如何“查询”一个SKScene. 我如何SKScene来回“发送”?这可能吗?

0 投票
2 回答
2620 浏览

swift - 您可以在 URLQueryItems 中发送字符串以外的对象吗?

好的,我正在构建一个 iMessage 应用程序,并且要来回传输数据,我必须使用URLQueryItems. 我正在使用一个SKScene并且需要传输Ints、CGPoints、图像等。阅读 Apple 的文档和我自己的尝试似乎你只能将字符串存储在URLQueryItems 中。

由于这是我们来回传递数据的唯一方法,是否有(更好的)方法来存储其他类型的数据?目前我一直在这样做:

然后另一方面,我必须Int再次将此字符串转换回。用 s 做这件事CGPoint效率低下..如何通过 a CGPointin a之类的东西URLQueryItem?除了将 x 和 y 值存储为字符串之外还有其他方法吗?

编辑:这就是我从另一个人那里接收数据并将其放入他们的场景的方式:

0 投票
2 回答
1524 浏览

swift - 如何在 Swift 中传递和获取多个 URLQueryItems?

好的,我正在使用 iMessage 应用程序并尝试从此处选择的消息中解析 1 个以上的 url 查询项 - 我已成功在查询中仅获取/发送 1 个值:

当我只有 1 个值时,只需打印conversation.selectedMessage?.url?.query?.description我就可以得到一个带有 1 个值的可选值,这很好。但是有多个我无法找到一种干净的方法来按键获取特定值。

URLQueryItem为 iMessage 解析给定键的正确方法是什么?

0 投票
0 回答
87 浏览

ios - 如果我在展开视图中双击贴纸并按下发送按钮,iMessage 应用程序会崩溃

我正在按照本教程使用 iMessage Extension 创建应用程序:

https://code.tutsplus.com/tutorials/create-an-imessage-app-in-ios-10--cms-26870

问题是:当我打开扩展视图然后双击任何贴纸时,从扩展视图过渡到紧凑视图时,底部栏崩溃了。

我在 appstore 上看到过很少的 iMessage 应用程序,其中很少有点击扩展视图被禁用,而在其中一些应用程序中它可以正常工作。

如果有人对此进行了研究并解决了这个问题。提供一些如何解决此问题的建议。

0 投票
1 回答
368 浏览

ios - 与父级不同,从 iMessage 应用程序呈现的视图控制器被 iMessage 顶栏覆盖

我注意到在 iMessage 栏下方放置工具栏很困难,因为生成的视图控制器似乎开始在顶部 iMessage 栏所在的空间中绘制。由于 iPhone 5s 的 iMessage 栏的高度为 44 像素,因此使用距 64 顶部的固定距离不起作用。

然后我意识到这只是呈现视图控制器时的一个问题,并且第一个视图控制器或根视图控制器实际上开始在 iMessage 顶部栏下方呈现。我想知道是否有任何一种方法可以检测高度,或者是否有一种方法可以使生成的视图控制器应用与 iMessage 应用程序的根控制器类似的布局。

这是一些显示问题的截图。请注意工具栏和顶部栏之间的小间隙。这是因为 iPhone 5s 的 iMessage 顶部栏高度较短。

iPhone 5S 显示差距

5s 设备顶部栏和导航栏之间有间隙

在 6s/更大的设备上,工具栏和顶部栏之间没有间隙:

6s 设备,顶部栏和导航栏之间没有间隙

我编写了一个示例应用程序来显示生成的视图控制器开始绘制在与 iMessage 顶部栏相同的位置。

具有 < 10 像素顶部约束的初始/父视图控制器。

显示父控制器开始在图像顶部栏下方呈现的示例应用程序

粉红色按钮上的顶部约束 < 10 像素的子项。

示例应用显示生成的视图控制器开始在与图像顶部栏相同的位置呈现

示例故事板的屏幕截图。

故事板显示 VC 与顶部的距离相似

0 投票
0 回答
1007 浏览

ios - Swift:在集合视图中延迟加载动画?

我还没有在其他任何地方看到过这个主题——我已经构建了一个 iMessage 应用程序,它使用一个 collecitonview 来保存一堆 MSStickerViews。这些贴纸是动画的。

我的问题是,虽然应用程序本身似乎在您第一次打开时加载,但在用户能够触摸贴纸/与应用程序交互之前以及 MSStickers 开始动画之前存在明显的延迟。我不确定这是否与调用函数的顺序有关,但我找不到改进/修复此问题的方法。

我的 MSStickers 被添加到集合视图单元格中:

然后在一个单独的 Cell 类中添加贴纸视图并将其设置为.startAnimating().

延迟约为 5-6 秒。我怎样才能减少这种情况?这可能吗?

动画/贴纸代码:

然后添加贴纸视图并开始在单独的单元格类中制作动画。

0 投票
1 回答
74 浏览

ios - 从 MSConversation 访问以前的 MSMessage

如果我在 iMessage 应用程序中发送了几条消息,并且我想访问以前的消息(显然只是我自己的应用程序创建的消息,而不仅仅是用户在他们的对话中发送的任何消息),有没有办法可以做到这一点?

我可以通过以下方式访问最新消息:

[self activeConversation].selectedMessage;

任何方式来遍历用户可能从未点击过的先前消息(因此,不能简单地将其存储在用户默认值中)

0 投票
1 回答
335 浏览

ios - iMessage 扩展 - 需要知道 iMessage 标头的高度

我正在开发“猫”iMessage 扩展程序。(好吧,我不是,但客户要求我清理我的 SO 问题。)这是我在 tableView 中看到的:

在此处输入图像描述

如您所见,我的表格的部分标题在我的搜索栏下方有很大的差距。我可以用这段代码轻松解决这个问题。

嗯,几乎很容易,这 20 让我非常担心。你看,这 20 在不同的设备上是不同的。这是不可接受的,我无法对设备表进行硬编码。

我的第一个猜测是尝试调整顶部指南,但这始终为零,或者是一个约束,但我找不到可以调整的!

问:为什么会有差距?

A: 有间隙是因为这是一个 iMessage 扩展,间隙的大小正好是上面“Kate”标头的大小。您可以在这两个屏幕截图中看到这一点。首先,显示 168px 间隙的 iPhone7 正好等于 168px 标题:

在此处输入图像描述

接下来在 iPhone SE 中,显示 126px 的间隙,与 126px 的标题完全匹配:

在此处输入图像描述

有什么好的、独立于设备的方法来解决这个问题?

0 投票
1 回答
687 浏览

ios - xcode 8.3.2 错误的包标识符、无效的代码签名标识符和无效的代码签名权利

这是我第一次制作应用程序。我在构建时或运行时没有收到任何错误消息,但是当我尝试上传应用程序时,我收到以下错误:

无效的代码签名权利:您的应用程序包的签名包含 iOS 不支持的代码签名权利。具体来说,不支持“Payload/YYY.app/PlugIns/StickerPackExtension.appex/StickerPackExtension”中键“application-identifier”的值“ABC.XXX.YYY.StickerPackExtension”。此值应该是一个以您的 TEAMID 开头的字符串,后跟一个点“.”,然后是捆绑标识符。

该值是一堆数字和字母,我的 TEAMID,应用程序名称,然后是 StickerPackExtension。

无效的代码签名标识符。“StickerPackExtension”的代码签名中的标识符“XXX.YYY.StickerPackExtension”必须与其捆绑标识符“XXX.YYY”匹配

当我将标识符更改为与其捆绑标识符相同时,我收到另一条错误消息,告诉我它们不能相同。

错误的捆绑标识符。应用程序扩展 YYY.app/PlugIns/StickerPackExtension.appex 的包标识符 'XXX.YYY' 应以应用程序的包标识符 'XXX.YYY' 开头,并且不包含多个句点“.” 在应用程序的捆绑 ID 之后。

我不知道该怎么办。

我在这里和其他地方搜索了很多,但我遇到了砖墙!不知道下一步该怎么做。