Действие кнопки обмена сообщениями в приложении Firebase не работает - PullRequest
0 голосов
/ 26 сентября 2018

В моем проекте для iOS я настроил все зависимости для обмена сообщениями внутри приложения в Firebase, и по нажатию кнопки мне нужно перевести пользователя на веб-страницу.

Баннер и сообщение получают вустройство, как требуется, но действие кнопки не открывает веб-страницу.

Обратите внимание, что то же самое работает для приложения Android без каких-либо проблем, он открывает URL-адрес в браузере без проблем.

Я отправляю URL-адрес в правильном формате, т.е.

Ответы [ 4 ]

0 голосов
/ 28 сентября 2018

У меня тоже самое и метод

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool

даже не срабатывает после нажатия на кнопку действия

0 голосов
/ 27 сентября 2018

Хорошо, решение состоит в том, чтобы использовать динамические ссылки firebase и добавить метод в AppDelegate.swift

func application(_ application: UIApplication,
               open url: URL,
               sourceApplication: String?,
               annotation: Any) -> Bool {
let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url)

if dynamicLink != nil {
  if dynamicLink?.url != nil {
    // Handle the deep link. For example, show the deep-linked content,
    // apply a promotional offer to the user's account or show customized onboarding view.
    // ...
  } else {
    // Dynamic link has empty deep link. This situation will happens if
    // Firebase Dynamic Links iOS SDK tried to retrieve pending dynamic link,
    // but pending link is not available for this device/App combination.
    // At this point you may display default onboarding view.
  }
  return true
}
return false
}

. Узнайте больше в обмене сообщениями внутри приложения пример из Google

0 голосов
/ 28 сентября 2018

У меня была эта проблема с момента запуска обмена сообщениями в приложении.Я делаю Android часть без каких-либо проблем, но для iOS, я не могу заставить работать кнопку.Спасибо за понимание из этого поста.Но вышеприведенное добавление в AppDelegate не работает.Я должен добавить больше:

func application(_ application: UIApplication,
                 open url: URL,
                 sourceApplication: String?,
                 annotation: Any) -> Bool {
    let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url)

    if dynamicLink != nil {
        if dynamicLink?.url != nil {
            // Handle the deep link. For example, show the deep-linked content,
            // apply a promotional offer to the user's account or show customized onboarding view.
            // ...
        } else {
            // Dynamic link has empty deep link. This situation will happens if
            // Firebase Dynamic Links iOS SDK tried to retrieve pending dynamic link,
            // but pending link is not available for this device/App combination.
            // At this point you may display default onboarding view.
        }
        return true
    }
    return false
}



func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
    let handled = DynamicLinks.dynamicLinks().handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in
        // ...
    }

    return handled

}
0 голосов
/ 26 сентября 2018

Убедитесь, что приложение вашего AppDeletegate: openURL: sourceApplication: annotation: (iOS 8 и старше) и приложение: openURL: options: (iOS 9 и выше) вернет YES / true или NO / false.In-App Messaging SDK проверит возвращаемое значение этих методов, чтобы решить, обрабатываются ли они уже приложением или нет.

Так что для случая веб-ссылки, убедитесь, что вы вернули No / false, чтобы In-App Messaging SDK мог переслать его системе для загрузки в браузер.Вы можете отладить это поведение, проверив, как метод обработки URL вашего appdelegate запускается после нажатия кнопки.

...