2015-03-31 165 views
1

我正在Swift中開發一個IOS應用程序,它允許將數據更新作爲電子郵件附件發送。 這些附件具有自定義數據類型,因此當我從電子郵件內部單擊它們時,我的應用程序將打開並導入它們。通過EMail打開IOS應用程序

我使用這個下面的代碼,它完美的作品:

func application(application: UIApplication!, openURL url: NSURL!, sourceApplication: String!, annotation: AnyObject!) -> Bool { 

    myURL = url                            // invoked by tapping emailed ZXO file 13/02/15 
    return true                            // ... contains file to be imported 
} 

但是這個代碼,只有當應用程序是不是在後臺,也就是說,如果它是通過電子郵件消息最初被髮布調用。 如果應用程序在後臺運行,則不會調用它,通常情況下是這樣。

我一直在嘗試

func applicationWillEnterForeground(application: UIApplication) { 

} 設置數據,但我沒有成功。這意味着用戶必須在打開電子郵件之前退出應用程序,而這些電子郵件通常會被忘記。

我將不勝感激任何幫助,試圖解決這個問題!

回答

0

您可以通過實施自定義URL方案打開應用程序到您的應用程序。打開您應用程序的plist並向下滾動到底部,您將在其中看到「URL類型」部分。您可以在「Url Schemes」字段中輸入方案。因此,舉例來說,您可以在該字段中輸入「myapp」,然後您可以將鏈接放入您的電子郵件myapp://然後打開您的應用程序。

請注意,如果應用程序沒有安裝在設備上,當用戶點擊該鏈接時,或者什麼都不會發生,或者您會看到一個錯誤彈出窗口,告訴用戶鏈接無法打開或它是一個無效的鏈接。

+0

感謝您的回覆,但我的問題不是我的應用程序無法打開。問題是應用程序不會打開電子郵件中的URL,除非它從頭開始 - 即不在後臺運行。我仍然在處理這個問題,並會發佈一個答案,如果我能找到一個。 – Ross 2015-04-03 14:07:13

相關問題