6

iOS 5以降では、あるiOSアプリを別のiOSアプリから起動するために、カスタムスキーム/プロトコルとともにopenUrlを使用しました。(カスタムスキームなしでアプリを起動することはできませんでした。同じスキーム/プロトコルのアプリが2つある場合、どちらのアプリを起動するかは不確定でした)

iOS 6では、safari(スマートアプリバナー経由)およびsiriからアプリを起動できます。スマートアプリのバナーはアプリIDを介して起動しますが、siriを介した起動がどのように行われるかは不明です。

「アプリIDを介してアプリを起動する」はパブリック/サポートされているAPI呼び出しですか?これを使用して、あるカスタムアプリを別のカスタムアプリから起動できますか?

(もしそうなら、これはサポートスキーム/プロトコルを持たない既存のアプリの起動を解決し、同じスキームの2つのアプリの問題を解決する可能性があります)

4

1 に答える 1

3

このプロセスは、SmartAppBannerと呼ばれます。

デビッド・スミスはそれらについて非常に疲れ果てた投稿を書きました。 http://david-smith.org/blog/2012/09/20/implementing-smart-app-banners/

基本的に、このメタタグをWebisteページに追加するだけです(#######はアプリIDです)。

<meta name="apple-itunes-app" content="app-id=#########"/></code>

より多くのパラメンターを通話に渡したい場合は、アプリを開くだけで、アプリでより具体的なことを行うとしましょう。

<meta name="apple-itunes-app" content="app-id=#########, foo=xxxxxx&bar=yyyyyyy"/>

次に、アプリデリゲートでコールバックURLを処理します。

-(BOOL)application:(UIApplication*)application
        openURL:(NSURL*)url
        sourceApplication:(NSString*)sourceApplication
        annotation:(id)annotation
于 2012-09-24T09:14:19.303 に答える