2017-02-17 62 views
2

我想在後臺打開應用程序時打開React Native Android深層鏈接。下面是我如何處理其他類似的案件:當應用程序在後臺打開時,如何打開React Native Android深層鏈接?

iOS應用程序是在後臺打開: Linking.addEventListener('url', this.handleOpenURL);

iOS應用程序在後臺關閉 Linking.getInitialURL().then(url => {return this.handleOpenURL({ url })});

Android應用是在開放背景: ? - 處理這種情況的最佳方式是什麼?

的Android應用程序被關閉的背景: Linking.getInitialURL().then(url => {return this.handleOpenURL({ url })});

+0

你是否找到了答案呢?在背景中與android有相同的問題 –

+0

不幸的是沒有。 –

+0

我已經在主要活動中使用原生android代碼oNewIntent()解決了它。 –

回答

1

的反應本地鏈接似乎並沒有在後臺運行Android的工作。您可以使用原生android代碼解決此問題。在主要活動覆蓋的方法是這樣的:

@Override 
public void onNewIntent(Intent intent) { 
    if(intent.getData() != null) { 
     Uri deepLinkURL = intent.getData(); 
     DeepLink deepLink = new DeepLink(deepLinkURL.toString()); 
    } 
} 

你需要做的什麼是整合與反應本地JavaScript這個Java代碼。這可以通過反應本機模塊來完成。網站上有一些文檔。爲了使它成爲更有效的解決方案,您可以使用類似http://square.github.io/otto/的東西來創建偵聽該深度鏈接對象的事件總線。然後,一旦事件發生,深度鏈接事件就會有效觸發。我希望這可以幫助男人:)

+0

我面臨同樣的問題,並且我是Android新手。你介意告訴我們'DeepLink'來自哪裏?它只是android庫或第三方庫,以及如何獲取它?謝謝 –

+0

這是內置的反應原生。該圖書館被稱爲鏈接https://facebook.github.io/react-native/docs/linking.html –

相關問題