问题标签 [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.
ios - 点击消息不会打开 AppStore 中的应用页面
我开发的包含 iMessage 扩展的应用程序最近在 AppStore 中发布。当我向未安装此应用程序的人发送带有我的扩展程序的消息时,他们点击消息,并获得 AppStore 视图,在“精选”页面打开。根据文档,它应该打开我的应用程序页面。
是否需要任何条件才能工作?关于捆绑包 ID、名称、权利等任何要遵循的规则?
它似乎适用于其他应用程序。
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
的所有内容,以便发送场景。
我不清楚URLQueryItem
s 是如何工作的,因为文档与 sprite kit 场景无关。
苹果在当前状态下查询他们的“冰淇淋”,如下所示:
但我不知道如何“查询”一个SKScene
. 我如何SKScene
来回“发送”?这可能吗?
swift - 您可以在 URLQueryItems 中发送字符串以外的对象吗?
好的,我正在构建一个 iMessage 应用程序,并且要来回传输数据,我必须使用URLQueryItem
s. 我正在使用一个SKScene
并且需要传输Int
s、CGPoint
s、图像等。阅读 Apple 的文档和我自己的尝试似乎你只能将字符串存储在URLQueryItem
s 中。
由于这是我们来回传递数据的唯一方法,是否有(更好的)方法来存储其他类型的数据?目前我一直在这样做:
然后另一方面,我必须Int
再次将此字符串转换回。用 s 做这件事CGPoint
效率低下..如何通过 a CGPoint
in a之类的东西URLQueryItem
?除了将 x 和 y 值存储为字符串之外还有其他方法吗?
编辑:这就是我从另一个人那里接收数据并将其放入他们的场景的方式:
swift - 如何在 Swift 中传递和获取多个 URLQueryItems?
好的,我正在使用 iMessage 应用程序并尝试从此处选择的消息中解析 1 个以上的 url 查询项 - 我已成功在查询中仅获取/发送 1 个值:
当我只有 1 个值时,只需打印conversation.selectedMessage?.url?.query?.description
我就可以得到一个带有 1 个值的可选值,这很好。但是有多个我无法找到一种干净的方法来按键获取特定值。
URLQueryItem
为 iMessage 解析给定键的正确方法是什么?
ios - 如果我在展开视图中双击贴纸并按下发送按钮,iMessage 应用程序会崩溃
我正在按照本教程使用 iMessage Extension 创建应用程序:
https://code.tutsplus.com/tutorials/create-an-imessage-app-in-ios-10--cms-26870
问题是:当我打开扩展视图然后双击任何贴纸时,从扩展视图过渡到紧凑视图时,底部栏崩溃了。
我在 appstore 上看到过很少的 iMessage 应用程序,其中很少有点击扩展视图被禁用,而在其中一些应用程序中它可以正常工作。
如果有人对此进行了研究并解决了这个问题。提供一些如何解决此问题的建议。
ios - 与父级不同,从 iMessage 应用程序呈现的视图控制器被 iMessage 顶栏覆盖
我注意到在 iMessage 栏下方放置工具栏很困难,因为生成的视图控制器似乎开始在顶部 iMessage 栏所在的空间中绘制。由于 iPhone 5s 的 iMessage 栏的高度为 44 像素,因此使用距 64 顶部的固定距离不起作用。
然后我意识到这只是呈现视图控制器时的一个问题,并且第一个视图控制器或根视图控制器实际上开始在 iMessage 顶部栏下方呈现。我想知道是否有任何一种方法可以检测高度,或者是否有一种方法可以使生成的视图控制器应用与 iMessage 应用程序的根控制器类似的布局。
这是一些显示问题的截图。请注意工具栏和顶部栏之间的小间隙。这是因为 iPhone 5s 的 iMessage 顶部栏高度较短。
iPhone 5S 显示差距
在 6s/更大的设备上,工具栏和顶部栏之间没有间隙:
我编写了一个示例应用程序来显示生成的视图控制器开始绘制在与 iMessage 顶部栏相同的位置。
具有 < 10 像素顶部约束的初始/父视图控制器。
粉红色按钮上的顶部约束 < 10 像素的子项。
示例故事板的屏幕截图。
ios - Swift:在集合视图中延迟加载动画?
我还没有在其他任何地方看到过这个主题——我已经构建了一个 iMessage 应用程序,它使用一个 collecitonview 来保存一堆 MSStickerViews。这些贴纸是动画的。
我的问题是,虽然应用程序本身似乎在您第一次打开时加载,但在用户能够触摸贴纸/与应用程序交互之前以及 MSStickers 开始动画之前存在明显的延迟。我不确定这是否与调用函数的顺序有关,但我找不到改进/修复此问题的方法。
我的 MSStickers 被添加到集合视图单元格中:
然后在一个单独的 Cell 类中添加贴纸视图并将其设置为.startAnimating()
.
延迟约为 5-6 秒。我怎样才能减少这种情况?这可能吗?
动画/贴纸代码:
然后添加贴纸视图并开始在单独的单元格类中制作动画。
ios - 从 MSConversation 访问以前的 MSMessage
如果我在 iMessage 应用程序中发送了几条消息,并且我想访问以前的消息(显然只是我自己的应用程序创建的消息,而不仅仅是用户在他们的对话中发送的任何消息),有没有办法可以做到这一点?
我可以通过以下方式访问最新消息:
[self activeConversation].selectedMessage;
任何方式来遍历用户可能从未点击过的先前消息(因此,不能简单地将其存储在用户默认值中)
ios - iMessage 扩展 - 需要知道 iMessage 标头的高度
我正在开发“猫”iMessage 扩展程序。(好吧,我不是,但客户要求我清理我的 SO 问题。)这是我在 tableView 中看到的:
如您所见,我的表格的部分标题在我的搜索栏下方有很大的差距。我可以用这段代码轻松解决这个问题。
嗯,几乎很容易,这 20 让我非常担心。你看,这 20 在不同的设备上是不同的。这是不可接受的,我无法对设备表进行硬编码。
我的第一个猜测是尝试调整顶部指南,但这始终为零,或者是一个约束,但我找不到可以调整的!
问:为什么会有差距?
A: 有间隙是因为这是一个 iMessage 扩展,间隙的大小正好是上面“Kate”标头的大小。您可以在这两个屏幕截图中看到这一点。首先,显示 168px 间隙的 iPhone7 正好等于 168px 标题:
接下来在 iPhone SE 中,显示 126px 的间隙,与 126px 的标题完全匹配:
有什么好的、独立于设备的方法来解决这个问题?
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 之后。
我不知道该怎么办。
我在这里和其他地方搜索了很多,但我遇到了砖墙!不知道下一步该怎么做。