2015-05-20 3 views
5

Итак, у меня есть приложение, написанное быстро, что я хотел бы использовать глубокие ссылки. Пользователь будет нажимать на тот, который на маршруте URL-адреса имел разные фрагменты информации, такие как идентификатор сообщения или количество понравившихся ему или что-то в этом роде. Я понимаю, что ты положил это в AppDelegate:Настроить глубокие ссылки в swift?

func application(application: UIApplication,openURL url: NSURL,sourceApplication sourceApplication: String?,annotation annotation: AnyObject?) -> Bool { 
    println(url.host as String!) 
    return true 
} 

И печатает все после appname://. Но как я могу получить url.host моему контроллеру просмотра, который будет разбираться в необходимой мне информации. Если объявление URL был вне этой функции, то я мог бы использовать это:

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
let InfoFromDeepLink = appDelegate.url.host 

, но так как он находится внутри этой громоздкой функции Objective-C, я беспомощен. Как ты делаешь это? Я полностью сбит с толку. Я даже не могу установить функцию на return url.host, потому что она этого не позволяет. Вот что я сделал бы в Javascript. Если вы также знаете, что Javascript может поместить его в понятия, которые понимает веб-разработчик, потому что я довольно новичок в этом. Это должно быть так просто для разработчика Swift? Мне так глупо.

ответ

1

Я бы рекомендовал использовать этот cocoapods пакет под названием DeepLinkKit HERE IS THE SOURCE CODE

pod "DeepLinkKit"

Вы можете просто маршрут и иметь обработку об ошибке:

// Matches the URL. 
router[@"timeline"] = ^{ … } 

// Does not match the URL. 
router[@"/timeline"] = ^{ … } 

Here is a good tutorial, который показывает вам в глубину, как это работает ,

+0

Могу ли я использовать эту библиотеку в моем проекте Swift? Я вижу, что это написано в Objective C. – MarksCode

0

Apple больше не поддерживает Deep Links. Теперь он называется Universal Links и работает немного по-другому.

Источник

Теперь, когда компания Apple больше не поддерживает схемы URI для глубокого связывания, разработчики должны внедрить Всеобщие ссылки для того, чтобы должным образом глубокой связь на прошивке. Если вы уже используете схемы URI, ознакомьтесь с нашим блогом при переходе на Universal Links.

От: HERE

И HERE еще одна статья по универсальному Ссылки и то, что они есть.

Смежные вопросы