2016-04-17 7 views
1

同じ電話機にインストールされている2つのApps間で通信したいと思います。これを行うために、私はCustom URL Schemeを実装する必要があることを理解するために多くの公式文書を読んでいます。InterApp通信にcanOpenUrlを使用できません

iOS 9以前は、「 」に「URLType」を追加してURLスキーム「 "」を定義する必要があるようです。

しかし、iOS 9以降、Apps間の通信方法が変わります。

URLスキームの例については、Querying URL Schemes with canOpenURLで説明しています。以下

マイアプリのコード:私は2つのアプリをインストールすると私のアプリBで

@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) 
} 

は、私がテストするために私のiPhone上でのInfo.plist

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

にURL名iOSTestを追加しますそれはまったく動作しません。

これは私のエラーです!

Error photo

は私のアプリでは何が問題なのですか?

答えて

3

設定が間違っています。 canOpenURLを呼び出すアプリは、LSApplicationQueriesSchemesリストにカスタムスキームを追加する必要があるアプリです。

アプリケーションAがiIOSTestためcanOpenURLを呼び出しているので、それはそれはiOSTestに応答することを登録する必要がアプリになりLSApplicationQueriesSchemesリスト、いないのApp B.

のApp BにiOSTestを追加する必要があるアプリケーションAであります他のアプリがのスキームでopenURLを呼び出したときに開くようにします。

+0

はい、正確です。 LSApplicationQueriesSchemesの両方をスワップする –

+0

何を求めていますか? App Bにカスタムスキームを登録する方法、またはApp Bに書き込むコードを教えてください。いずれにせよ、それはまったく異なる質問です。それはすべて文書やその他の多くの質問でカバーされています。この問題は解決されているので閉じておくべきです。追加の質問について支援が必要な場合は、その問題に固有の別の質問を投稿してください。 – rmaddy

+0

なぜcanOpenURLが機能しないのですか? – HungCLo