Как я могу протестировать firebase invite в iOS?

#ios #swift #testing #firebase #firebase-invites

#iOS #swift #тестирование #firebase #firebase-приглашения

Вопрос:

Я использую firebase invite, чтобы приглашать друзей, используя реферальный код. И мне нужно знать, как я могу обрабатывать следующие сценарии в моем приложении iOS.

Я следовал этому руководству по реализации Firebase Invite.

Случай 1: приложение не установлено на iPhone, и пользователь устанавливает приложение через приглашение. Мне нужен реферальный код из "deeplink" набора параметров от invitee. или приложение установлено и в данный момент не запущено, пользователь нажимает на URL приглашения из электронной почты.

Решение >> Насколько мне известно, приведенный ниже код внутри didFinishLaunchingWithOptions метода будет обрабатывать этот сценарий.

 if let inviteUrl = launchOptions?[UIApplicationLaunchOptionsURLKey] as? NSURL {
      //App opened from invite url
      self.handleFirebaseInviteDeeplink(inviteUrl)
}
  

Случай 2: приложение уже установлено и в настоящее время работает на iPhone, и пользователь нажимает на ссылку приглашения в электронном письме.

Решение >> Приведенные ниже методы в AppDelegate будут обрабатывать код, который я предполагаю.

 @available(iOS 9.0, *)
func application(application: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
     return self.application(application, openURL: url, sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as? String, annotation: "")
}

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
     if let invite = FIRInvites.handleURL(url, sourceApplication:sourceApplication, annotation:annotation) as? FIRReceivedInvite {
        let matchType = (invite.matchType == FIRReceivedInviteMatchType.Weak) ? "Weak" : "Strong"
              print("n------------------Invite received from: (sourceApplication) Deeplink: (invite.deepLink),"   "Id: (invite.inviteId), Type: (matchType)")
              if (matchType == "Strong") {
                  print("n-------------- Invite Deep Link = (invite.deepLink)")
                  if !invite.deepLink.isEmpty {
                       let url = NSURL(string: invite.deepLink)
                       self.handleFirebaseInviteDeeplink(url!)
                  }
              }
              return true
     }
     return GIDSignIn.sharedInstance().handle(url, sourceApplication: sourceApplication, annotation: annotation)
}
  

Проблема в том, что я не смог найти способ протестировать какой-либо сценарий. Кто-нибудь может указать мне правильное направление.

Спасибо за помощь.

Комментарии:

1. … Вы решили проблему?