Универсальная ссылка не открывается в приложении в iOS 9

Созданы типы URL-адресов в info.plist файле и его схема URL-адресов http. Создал Тип NSUserActivity. Создал права UIWebView в классе ViewController. В методе AppDelegate я реализовал код ниже:

func application (application: UIApplication,willContinueUserActivityWithType userActivityType: String) -> Bool  {
    let sharedUserActivityType = "com.test.testApp"
    if (userActivityType == sharedUserActivityType) {
        return true
    }
    return false
}

@available(iOS 8.0, *)

internal override func restoreUserActivityState(activity: NSUserActivity) {

    //don't forget to call super!

    if #available(iOS 8.0, *) {

        super.restoreUserActivityState(activity)

        let userInfo = activity.userInfo

    } else {
            // Fallback on earlier versions

    }
}

func application(application: UIApplication, continueUserActivity 
        userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> 
        Void) -> Bool {

    if  userActivity == "com.test.testApp.view"
    {
        let mainListing = ViewController()

        restorationHandler([mainListing])
    }

    if let window = self.window 
    {
        window.rootViewController?.restoreUserActivityState(userActivity)
    }

    return true
}

func application(app: UIApplication, openURL url: NSURL, options: 
        [String : AnyObject]) -> Bool {

    return true
}
  • Я сослался на ссылку https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2

  • Создан файл json с именем apple-app-site-association

    { 
                    "applinks":
                    {
                                    "apps":[],
                                    "details":
                                    {
                                                    "teamId.com.test.testApp":
                                                    {
                                                                    "paths":["*"]
                                                    }
                                    }
                    }
    }
    
  • Я подписал файл ассоциации яблочного приложения-сайта, но, поскольку я использую iOS9, не нужно подписывать.

  • Реализую метод application: continueActivity и возвращаю YES.

  • Но моя ссылка не открывается в приложении, а открывается в сафари.

person Megha    schedule 05.01.2016    source источник


Ответы (1)


Ваш JSON-файл apple-app-site-association имеет неверный формат - в словаре сведений отсутствует ключ appID, т. Е.

{ 
  "applinks": 
   { "apps":[], 
     "details": [
       {
         "appID": "teamId.com.test.testApp",  
         "paths":["*"] 
      } 
     ]
    } 
}

Вы можете использовать инструмент проверки Apple, чтобы проверить это в будущем.

Также обратите внимание, что даже если вы используете iOS9, вам все равно нужно обслуживать файл ассоциации яблочного приложения-сайта через https.

person XCode Warrier    schedule 25.01.2016