2016-04-17 6 views
1

Я хотел бы установить связь между двумя Приложениями, установленными на том же телефоне. Чтобы сделать это, я прочитал много официальных документов, чтобы понять, что мне нужно реализовать Custom URL Scheme.Невозможно использовать canOpenUrl для связи InterApp

Перед тем, как iOS 9, нам кажется, что мы должны добавить URLType в Info и определить схему URL: "".

Но после iOS 9 он изменил способ общения между приложениями.

Пример схемы URL обсуждается в: Querying URL Schemes with canOpenURL.

My App код ниже:

@IBAction func sender(sender: AnyObject) { 

    let ourapplication : UIApplication = UIApplication.sharedApplication() 
    let ourpath : String = "iOSTest://" 
     //.stringByAppendingString(urlEncodedText) 
    let oururl : NSURL = NSURL(string: ourpath)! 

    ourapplication.canOpenURL(oururl) 
} 

At My App B, добавить имя URL-адрес iOSTest в Info.plist

<key>LSApplicationQueriesSchemes</key> 
<array> 
    <string>iOSTest</string> 
</array> 

Когда я установить два приложения на моем iPhone, чтобы проверить , он вообще не работает.

Это моя ошибка!

Error photo

Что случилось с моим App?

ответ

3

У вас есть неправильная установка. Приложение, вызывающее canOpenURL, - это приложение, которое должно добавить пользовательскую схему в список LSApplicationQueriesSchemes.

Поскольку приложение А вызова canOpenURL для iIOSTest, это приложение А, необходимо добавить iOSTest в LSApplicationQueriesSchemes список, а не приложения Б.

App B будет приложение, которое нужно зарегистрировать, что он реагирует на iOSTest так что он будет открыт, когда какое-то другое приложение вызовет openURL со схемой iOSTest.

+0

Да, точно. Просто замените «LSApplicationQueriesSchemes» –

+0

Что вы спрашиваете? Как зарегистрировать пользовательскую схему с помощью приложения B или код, который вы должны написать в приложении B? В любом случае, это совершенно другой вопрос. Все это описано в документах и ​​во многих других вопросах. Этот вопрос должен быть закрыт, поскольку он был решен. Если вам нужна помощь в дополнительном вопросе, задайте другой вопрос, относящийся к этой проблеме. – rmaddy

+0

Я не понимаю, почему canOpenURL не работает? – HungCLo

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

  • Нет связанных вопросов^_^