Расширение iMessage: DidSelect не вызывается на iPad при нажатии на одно и то же сообщение – какие-нибудь обходные пути?IOS

Программируем под IOS
Ответить
Anonymous
 Расширение iMessage: DidSelect не вызывается на iPad при нажатии на одно и то же сообщение – какие-нибудь обходные пути?

Сообщение Anonymous »

Я создаю пошаговую игру для iMessage и упираюсь в стену с поддержкой iPad. Ищем тех, кто решил эту проблему.
Проблема
На iPad функция DidSelect(message:conversation:) срабатывает только при первом касании пользователем всплывающего сообщения. Повторное нажатие на одно и то же сообщение ничего не дает — метод просто не вызывается.
На iPhone он каждый раз работает правильно.
Это нарушает пошаговые игры, в которых оба игрока взаимодействуют с одним и тем же сообщением.
Что я пробовал до сих пор
  • Вызов метода Disclaim() после отправки – надеюсь отменить выделение сообщения и выполнить следующее нажатие регистрируется как новый. Не сработало.
  • Использование других методов жизненного цикла:
    • Код: Выделить всё

      willBecomeActive(with:)
      — срабатывает, но не отображает выбранное сообщение.
    • Код: Выделить всё

      didBecomeActive(with:)
      – та же проблема
    • Код: Выделить всё

      didResignActive(with:)
      / willResignActive(with:) – для этого бесполезно.
  • Проверка разговора.selectedMessage – часто устарел или равен нулю при проверке методов жизненного цикла.
  • Отправка нового сообщения каждый ход (другой URL/сеанс) – не помогает, поскольку пользователь по-прежнему нажимает на тот же видимый пузырь
  • Принудительное обновление пользовательского интерфейса и перезагрузку состояния – базовое состояние выбора не обновляется
Код

Код: Выделить всё

override func didSelect(_ message: MSMessage, conversation: MSConversation) {
// iPhone: fires every tap ✓
// iPad: fires only on first tap ✗
loadGame(from: message, in: conversation)
}
Среда
  • Xcode 15+
  • iOS 16.6+
  • Подкласс MSMessagesAppViewController
  • Состояние игры, закодированное в URL-адресе сообщения
Что я ищу
  • Кто-нибудь выпустил пошаговую игру iMessage, которая работает на iPad?
  • Есть ли обходной путь, который мне не хватает?
  • Есть ли недокументированные API или творческие решения?
  • Должен ли я использовать совершенно другую архитектуру?
Я видел сообщения об этом на форумах разработчиков, датированные 2016 годом, но Apple не ответила. Надеюсь, кто-нибудь из сообщества взломал его.
Будем рады поделиться дополнительным кодом или попробовать любые предложения. Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/799 ... essage-any
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»