2016-09-06 6 views
3

iOS 10では、ユーザーの3Dがアプリアイコンに触れると、新しいTodayウィジェットも表示されます。私はそこにアプリケーションを起動し、特定のドキュメントを開くボタンを追加したいと思います(Apple Musicウィジェットに似ています)。これを達成するために私は何を使用すべきですか?iOS 10 Todayウィジェットボタン

答えて

4

今日ExtensionsはプロパティextensionContextとして公開され、NSExtensionContextを持っていただきありがとうございます。 ExtensionContextにはopenURLメソッドがあり、プライベートURLを渡してアプリを起動できます。

これは非常に広い質問ですので、この技術の概要を説明します。

(1)メインアプリにカスタムURLスキームを登録します(例: myappの:

例えば、アプリケーションのplistファイルにキーを追加します。:

<key>CFBundleURLTypes</key> 
<array> 
<dict> 
    <key>CFBundleURLName</key> 
    <string>com.mycompany.myapp</string> 
    <key>CFBundleURLScheme</key> 
    <array> 
    <string>myapp</string> 
    </array> 
</dict> 
</array> 

をこのアプリケーションが "myappの" スキームを扱うのiOSに登録されます。ここであなたの名前を使用し、ユニークである可能性が高いものを選んでください!

(2)(3)あなたのアプリケーションのアプリケーションデリゲートでコールを処理し、それがうち

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 
{ 
    // do something here 
} 

handleOpenURL方法ですあなたの今日の拡張ビューコントローラ

[self extensionContext] openURL:[NSURL URLWithString:@"myapp://someurl"] completionHandler:nil]; 

のごextensionContextにopenURLを呼び出しますもちろん、これは、あなたが今日のウィジェットにボタンを配置し、ボタンの押下を使用して適切なURLをアプリに渡すための適切なハンドラを持っていることを前提としています。

あなたはSwiftで質問にタグを付けましたが、これらのサンプルスニペットはObj-Cにあります。申し訳ありません。

+0

これは素晴らしいことです。私はこれを見ていきます。どうもありがとうございました。 –