问题标签 [ios-messages-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 投票
3 回答
1648 浏览

autolayout - iOS 10 Messages Extension - Wrong Layout when using Storyboard Segue

When using Segues in Messages Extension Application the layout gets messed up.
Is there any way to solve this issue while still using storrybord segues?

Screenshots:
(Note: The first and second View / ViewController are identical. The segue-type doesn't matter)

Expanded Presentation Style:

1Exp 2Exp


Compact Presentation Style:

1Comp 2Comp

Update 1:

The top and bottom layout guides reset after a segue

  • compact:
    • top: should be: 0 but is: 20
    • bottom: should be: 44 but is: 0
  • expanded:
    • top: should be: 86 but is: 20
    • bottom: should be: 44 but is: 0


P.S. Can someone create a new "messages-extension" tag?

0 投票
0 回答
522 浏览

ios - 如何在 iOS 10 消息扩展中使用 CKSubscription?

iOS 10 引入了消息扩展,这是第一个(据我所知)不需要主机应用程序的扩展。我正在尝试在没有主机应用程序的消息扩展中使用 CloudKit。

据我所知,CKSubscription依赖于推送通知。但是,我无法UIApplication在应用程序扩展中以通常的方式(通过)注册推送通知:

CKSubscription这意味着在消息应用程序中接收通知似乎是不可能的。我确实在 new 中找到了希望UserNotifications.framework,但它没有提供任何注册远程通知的机制。我试过了:

但是,当我更新作为 my 主题的记录时CKSubscription,不会向用户显示任何通知,也不会通知委托人。

这是我的CKSubscription代码:

如何CKSubscription在消息扩展中获得通知?


我什至不需要向用户显示通知,也不需要在后台接收它们。我只想知道在我的扩展程序运行时记录何时更新。

如果除了我也愿意听到之外还有其他方法可以做到这一点CKSubscription(只要它不会不断地轮询 CloudKit,浪费我宝贵的 40 个请求/秒)。

我在物理设备和模拟器上都试过了。

0 投票
1 回答
2183 浏览

swift - 如何在 iOS 10 的 iMessage 应用程序中发送带有图像和标题的音频文件?

我正在创建 iMessage 应用程序并尝试将音频或视频文件发送给其他用户。

视频文件可以正常工作并且看起来很好,但它不能按预期与音频文件一起工作。

我目前的代码是:

看起来layout.mediaFileURL = destinationURL没有将任何文件添加到消息中。

当我尝试使用上述代码发送文件时,如下所示:

在此处输入图像描述

看起来不错,但没有音频可以播放,但如果我尝试这种方式:

上面代码的结果是:

在此处输入图像描述

我可以播放该消息的音频,因为它就在那里。但该消息的问题是我无法附加任何图像或标题。

如何将图像和音频文件附加到同一条消息中。

如果可能的话,我可以添加 GIF 而不是图像吗?

任何帮助将不胜感激,谢谢。

0 投票
1 回答
983 浏览

ios - 消息扩展上的 UUID 发生的奇怪事情

我正在创建这个消息扩展,它是一个游戏。

当我收到关于didBecomeActiveWithConversation我的 UUID 和对手的 UUID 的对话时,例如:

在这一点上,如果我打印这个,我会得到类似的东西

然后我在游戏中移动并发送给对手。

在模拟器上,我从“Kate”切换到“John Appleseed”。

当该方法didBecomeActiveWithConversation再次触发时,现在对于另一个用户,我再次获取两个 UUID。这是结果:

什么?myUUID 和以前一样,而我的对手UUID 完全不同??通过在消息上切换用户,我希望看到条目被还原。怎么可能?漏洞?

0 投票
2 回答
523 浏览

swift - 带有备用文件名的插入附件在 iOS 10 中不起作用

根据文档:

它说的地方

文件名 ---> 如果您在此处提供字符串,则消息 UI 将其用于附件。使用备用文件名来更好地描述附件或使名称更具可读性。

我的代码是:

但它没有显示在消息应用程序的任何地方。

我在这里发送视频文件。

当用户单击消息时,我想在导航栏标题上显示该描述或在MSMessage可能的情况下显示该描述。

0 投票
6 回答
4012 浏览

ios - Swift 3 iMessage 扩展不打开 URL

我正在创建一个 iOS 应用程序 iMessage 扩展。

根据Apple 的示例,我根据提供的逻辑创建了一条消息

据我了解,发送消息后,单击时应打开 Safari 浏览器。

当我单击已发送的消息时,MessageViewController屏幕会出现在整个屏幕中,而无需打开 safari 或其他应用程序。

问题出在哪里?如何实现所需的功能?

0 投票
1 回答
195 浏览

app-store - 在应用商店发布独立消息扩展时,我需要 iOS 应用截图吗?

我在应用商店发布了一个独立的 iOS 消息扩展,这意味着没有 iOS 应用与之配套。我是否必须包含 iOS 应用程序的屏幕截图,或者我可以只添加消息扩展的屏幕截图吗?

谢谢

0 投票
1 回答
152 浏览

ios - 谁实际上是 localParticipantIdentifier?

我正在创建这个交互式消息应用程序。

每次我撰写消息并发送到另一端并使用此命令时:

我知道对方的名字。

例如,如果我在模拟器上使用Kate并且我向 发送消息John Appleseed,则消息与子标题一起发送,John Appleseed反之亦然。换句话说:John Appleseed收到一条带有他自己名字的消息,这也是如此Kate

不应该localParticipantIdentifier是发送消息的人吗?

0 投票
1 回答
349 浏览

ios - iOS 10 消息扩展 - 在模拟器中实现 didRecieve() 和 selectedMessage

我正在尝试实现 didRecieve() 以触发 iOS 10 扩展内的故事板转场。使用情节提要,我可以在使用以下代码创建消息后触发转场:

这很好用。我可以在创建后使用 i message 发送消息,并且由 iPhone 模拟器接收,触发发送消息的人的 segue。

当我想在其他人线程中选择消息时,麻烦就来了。Apple 在模拟器中包含两个相互连接的消息线程,用于测试使用您的扩展在用户之间发送和接收消息。

当我在收到的线程中选择消息时,不会触发 segue。它只是加载根视图控制器的新副本。

我想要的行为是获取特定消息实例的接收信息,并使用此数据触发 segue。Apple 提供了以下实例属性来实现这一点。

在此处参考 API 文档中的 selectedMessage:https ://developer.apple.com/reference/messages/msconversation/1648186-selectedmessage

问题是这个实例属性是如何实现的?它是否在您的消息扩展的根视图控制器的 onViewDidLoad() 中实现?Apple 的文档对于如何实际实现实例属性以从消息扩展接收端的选定消息中提取接收到的消息数据非常模糊。有没有人实施过这个?

谢谢!!

0 投票
0 回答
174 浏览

ios - 在带有消息扩展的模拟器中的消息选择上不会触发 selectedMessage()

我正在尝试使用我的消息扩展在消息选择上触发消息内容特定的 segue。我正在使用以下函数覆盖:

此功能在发送后将所选消息记录在原始消息中。但是,当我在模拟器中更改为收件人线程并选择消息时,didSelect()不会触发我的覆盖。

此外,如果我在此之后返回原始记录,didSelect()也不会触发覆盖。

我的印象是,无论上下文如何,此覆盖都应在每个消息选择上触发。

API 文档:https ://developer.apple.com/reference/messages/msmessagesappviewcontroller/1833298-didselect

谢谢大家!!