2016-03-08 51 views
2

即時通訊目前正在制定這兩個Android和iOS平臺的統一的應用程序在恢復中的應用。我已經在平臺上分別使用本機編碼實現深層鏈接。我現在的問題是深層鏈接工作得很好的Android和iOS設備,如果應用程序正在啓動的第一次活動,沒有它正在從最近的歷史恢復。如果應用程序最小化,然後如果在網頁上單擊了深層鏈接,應用程序將簡單地恢復,但不會傳遞深層鏈接數據。我知道這是因爲我已經調用了void Start()方法中的深度鏈接方法。我試圖讓布爾值檢查從活動數據和重新加載void Update()方法中的深層鏈接部分。但它不起作用。重新啓動使用C#團結

我想谷歌的一個解決方案小時。剩下的唯一選擇是重新啓動應用程序,以便整個事情從一開始就運行,因此深層鏈接將起作用。

我試着添加'應用程序不在後臺運行'屬性在info.plist爲ios.It工作,但我不能這樣做的android。

即時通訊使用統一5.3.1f1在mac和功能void OnApplicationPausevoid OnApplicationFocus都無法正常工作。我手動調試代碼,它不會調用該函數。

如果任何人都可以讓我知道是否有一個統一的方法或Android我可以實現什麼我試着這將是一個非常大的幫助。謝謝

回答

1

OnApplicationPauseOnApplicationFocus是最好的和推薦的方法來做到這一點。 OnApplicationPauseOnApplicationFocus沒有被呼叫Android因爲您的腳本中可能有Application.runInBackground刪除它,如果你有他們。

另外,對於要調用的OnApplicationPauseOnApplicationFocus,您必須從MonoBehavior繼承。您的腳本應該是這樣的:

public class ExampleClass : MonoBehaviour { 

    void OnApplicationPause(bool pauseStatus) { 

    } 

    void OnApplicationFocus(bool focusStatus) { 

    } 
} 

相反的:

public class ExampleClass : OTHERCLASS{ 

    void OnApplicationPause(bool pauseStatus) { 

    } 

    void OnApplicationFocus(bool focusStatus) { 

    } 
} 

OR:

public class ExampleClass { 

    void OnApplicationPause(bool pauseStatus) { 

    } 

    void OnApplicationFocus(bool focusStatus) { 

    } 
} 

如果不解決您的問題,那麼這可能是一個錯誤。更新統一從5.3.1f15.3.3因爲這是最新版本,可能會解決您的問題。

+1

此外,如果您啓用了虛擬現實,它將覆蓋後臺運行,因此您需要確保它已關閉。 – Everts