ナレッジボックス

Pocket


カスタムURLスキームを使ったアプリ間連携

プラットフォーム: iOS、Android、Web

スマートフォンのWebブラウザからアプリを起動したり、アプリから別のアプリを起動したい場合、カスタムURLスキーム(URL Scheme)を使って実現することができます。当社でもWebアプリとスマートフォンアプリが連携するサービスを数多く手がけています

特徴

・Webブラウザからスマートフォンアプリを起動します
・アプリから別アプリを直接起動できます
・アプリを起動する際にパラメータを渡して起動時の初期動作を変更することが可能です

実装サンプル(iOS)

アプリ連携には当然、呼び出す側と受ける側がありますが、
他アプリをへ連携する方法をサンプルとして記載します。

 

呼び出し方法は3つあります。

1. openURLを利用したアプリ連携
2. UIDocumentInteractionControllerを利用したアプリ連携
3. UIActivityViewControllerを利用したアプリ連携(iOS6以降)

 

・openURLを利用したアプリ連携
カスタムURLスキームを指定し呼び出す、昔からある基本方法です。
データの受け渡し方法は、「UIPasteboard(iOSのクリップボード)」を使った方法や「カスタムURLスキームにファイルパスなどを付加」して渡す方法など
アプリによって様々となります。

 

呼び出しコード例

 

カスタムURLスキームは沢山あるので、一部だけ記載しておきます。

 

 アプリ名  カスタムURLスキーム
 メール  mailto:
 電話  tel:xxx-xxxx-xxxx
 iTunes  http://itunes.apple.com/jp/genre
 iBooks  itms-bookss:
 Maps  maps:
 リマインダー  x-apple-reminder://
 Twitter  twitter:
 Evernote  evernote:root

 

 ・UIDocumentInteractionControllerを利用したアプリ連携

 

カスタムURLスキームを知らなくても、利用可能なアプリ一覧を表示、連携してくる便利なAPIです。

 

呼び出しコード例

 

実行イメージ(iOS6)
【iPad】             【iPhone】
 

 

 

・UIActivityViewControllerを利用したアプリ連携

iOS6以降という制限が可能であれば、UIActivityViewControllerを
利用した連携が非常に簡単です。
UIDocumentInteractionControllerと見た目もほぼ同じですが、
UIDocumentInteractionControllerは連携できるファイルは1つでしたが、
UIActivityViewControllerは、複数ファイルを渡すことができます。
確認出来ているのは、文字、画像、URLが渡すことができます。
さらに、UIActivityViewControllerの場合は、表示しないアプリ指定したり、
表示するアプリに独自アプリを追加できるなど拡張も可能となっています。

 

システムで用意されているアクティビティを呼び出すコード例

 

独自アプリを追加したコード例

 

実行イメージ
【システム標準】     【独自追加】
 

 

開発経緯や開発者による苦労話

今では当たり前になったカスタムURLスキームを使ったアプリ起動。弊社がアプリ開発を始めた当初はまだ情報が少なく、GoodReaderなどの有名なアプリの挙動を調べたり、英語の文献を探しながら手探り状態で実装しました。

今では連携方法も増え、FacebookやTwitter等のSNSへ自動ログインしたりSNSアプリと連携することも可能になりました。

 

サービスの活用事例

・Webサービスとスマートフォンアプリの連携
・スマートフォンアプリ同士の連携
・SNSのアカウントを利用したサービスの構築

連携画面イメージ(iOS)

【iOS5 iPad】       【iOS6 iPad】     【iOS6 iPhone】
  

 

関連する記事

iPhoneアプリを外部連携させてURLで起動させる方法(ブログ)

カスタムURLスキームを利用する(ブログ)

まとめ

アプリの起動だけではなく、アプリ間連携、SNSへの自動ログイン等も弊社では
豊富なノウハウがあります。ぜひ一度ご相談ください。


Pocket

お問合せ

開発に関するご相談/各種お問合せは下記まで。

TEL.06-4806-3470 月曜~金曜(祝日を除く)10:00~18:00
contact-dev@kronos-jp.net

技術情報

  • ナレッジボックス
グリーンハンド
STA-LOG
クロノスラボ
採用