Xcodeで作成したappファイルを以下方法で起動する際、Objective-Cのコードで区別する方法はありますでしょうか。
・ダブルクリック起動
・URLスキーム起動
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ダブルクリック起動
とはクイックアクションの起動のことですかね? 起動時によばれるハンドラは以下です。
// クイックアクションからの起動 - (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler { } // ディープリンク起動 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options { return YES; }
投稿2018/06/21 11:46
総合スコア8490
0
URLで起動された場合は-applicationWillFinishLaunching:
、
-application:openURLs:
、-applicationDidFinishLaunching:
の順で呼ばれるので
objectivec
1@interface HogeAppDelegate() 2@property BOOL isOpenWithURLs; 3@end 4 5@implementation HogeAppDelegate 6 7- (void)applicationWillFinishLaunching:(NSNotification *)notification { 8 9 self.isOpenWithURLs = YES 10} 11 12- (void)applicationDidFinishLaunching:(NSNotification *)notification { 13 14 self.isOpenWithURLs = NO 15} 16 17- (void)application:(NSApplication *)application openURLs:(NSArray<NSURL *> *)urls { 18 19 if( self.isOpenWithURLs ) { 20 // URLで起動 21 } else { 22 // 通常 23 } 24}
とか
-applicationDidFinishLaunching:
が呼ばれた時に分岐したいなら-application:openURLs:
でフラグを立てる。
フラグが立ってたらURLでの起動、立ってなかったら通常の起動。
最近全くObjective-C書いてないので雰囲気で!
投稿2018/06/25 15:17
編集2018/06/25 15:21総合スコア3384
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。