59

これらのApple Docsの助けを借りて、通知センター内にその日の見積もりを表示するアプリケーション +Quotes の Today ウィジェットを実装しました。私が達成したいのは、ユーザーが今日の通知ビュー内で +Quotes ウィジェットをタップしたときに、含まれているアプリ (この場合は +Quotes) を開くことです。本日の様子。ラベルの上にボタンを重ね -(void)openURL:(NSURL *)URL completionHandler:(void (^)(BOOL success))completionHandler てタップすると呼び出されるようにしてから、含まれているアプリを開くと宣言したカスタム URL スキームを開きます。問題は、含まれているアプリが開かないことです。

+Quotes Today アプリ拡張機能ウィジェット

-(IBAction)myButton:(id)sender {
    NSURL *customURL = [NSURL URLWithString:@"PositiveQuotes://"];
    [self openURL:customURL completionHandler:nil];
}
4

5 に答える 5

51

Apple Docによると、Swift 2バージョン

extensionContext?.openURL(NSURL(string: "foo://")!, completionHandler: nil)

スウィフト 3 バージョン

extensionContext?.open(URL(string: "foo://")! , completionHandler: nil)

カスタム URL スキームを追加することを忘れないでくださいInfo.plist

ここに画像の説明を入力

于 2015-08-24T17:07:38.593 に答える
3

非表示のボタンを追加せずにこれを行う別の方法は、UILabel に UITapGestureRecognizer を追加することです (ラベルで userInteractionEnabled を true に設定してください)。ハンドラーのレコグナイザーの状態をチェックして、UIGestureReconizerStateEnded (Canceled または Failed ではない) に到達したことを確認してから、openUrl コードを実行します。

于 2014-06-17T18:55:45.103 に答える