2016-08-03 5 views
0

アプリが既に開いている(背景になっている)場合、アプリは正常にアプリのユニバーサルリンクを処理できます。しかし、もしアプリケーションがすでに開かれていなければ、私は、例えば、メールでそのようなリンクをタップすると、アプリケーションは開きますが、私はアプリケーションのコールバックを取得しません:continueUserActivity ...(私は、アプリがバックグラウンドにしている場合iOS:アプリが開いていない場合はリンゴのユニバーサルリンクですか?

、と私は、メールアプリ、たとえば、リンゴユニバーサルリンク上で、このメソッドをクリックします(Appleのドキュメントを実装するために言っていることである:ウィットに)...

をバックグラウンドにユニバーサルリンクを処理するため):

optional func application(_ application: UIApplication, 
    continueUserActivity userActivity: NSUserActivity, 
     restorationHandler restorationHandler: ([AnyObject]?) -> Void) -> Bool 

取得されます。アプリケーションが実行されていない場合(私は強制的に閉じます)、リンクをクリックすると、そのメソッドは呼び出されませんが、アプリケーションが開かれます。

これはこのように動作するはずですか?


ベースMCMatanの手がかり、あなたはdidFinishLaunchingWithOptionsにこのような何かをしなければならない、そしてcontinueUserActivityが呼び出されます:あなたは正しいです

if let userActivityDict = launchOptions?[UIApplicationLaunchOptionsUserActivityDictionaryKey] as? NSDictionary, 
     activityType = userActivityDict[UIApplicationLaunchOptionsUserActivityTypeKey] as? String where activityType == NSUserActivityTypeBrowsingWeb { 

    return true 
} 
+0

あなたはあなたのコードを投稿し、私たちはあなたを支援するためには、もう少し徹底的に説明する必要があります;) – brandonscript

+0

@brandonscript私はそれがだと思いましたとにかくそれを追加しました – Colin

答えて

3

。アプリがバックグラウンドでない場合、「continueUserActivity」は呼び出されません。

代わりに、application:didFinishLaunchingWithOptions情報を呼び出します。

let activityDic = launchOptions?[UIApplicationLaunchOptionsUserActivityDictionaryKey] 
if let isActivityDic = activityDic { 
    // Continue activity here 
} 
関連する問題