2017-06-22 56 views
1

我正在嘗試爲Flutter創建一個Facebook登錄插件,並且已經獲得了本機代碼的運行。有一件事我不明白。依賴關係在哪裏使用權限和元數據?我想依賴和權限可以添加到插件的android文件夾。但元數據需要一個只有用戶可以提供的密鑰。所以我不能把它放在我的插件的android文件夾中,只能在使用該插件的項目中的android文件夾中。但我需要元數據才能使插件工作。所以我有點卡住了。任何有此經驗的人?Flutter插件開發:導入庫

回答

1

可以在插件的build.gradlepodspec中添加依賴項。儘管如果它依賴於非標準的Maven或CocoaPods回購,用戶需要在他們的項目中指定。

權限是由用戶在需要時添加的。與配置文件相同。使用插件的自述文件來解釋需要做什麼。

如果配置信息在iOS和Android(API密鑰等)中是相同的,那麼將它從Dart傳遞到本機是避免重複的良好做法。如果每個平臺的配置信息不同,使用插件從文件中讀出(或在AppDelegate/Activity中指定),Dart可以不知道它在哪個平臺上。

查看google_sign_in插件的靈感。

+0

對此還是有點困惑。也許我在想什麼。插件和用戶項目是否可以作爲2個獨立的東西工作? AndroidManifest.xml和strings.xml是合併的,因爲插件知道主項目中的這些文件並可以使用這些數據? –

+0

如果需要,您可以從插件中的用戶的AndroidManifest.xml或strings.xml中讀取數據。 https://stackoverflow.com/questions/10311890/is-it-possible-to-have-custom-attributes-in-androidmanifest-xml-tags https://stackoverflow.com/questions/6583843/how-to-access -resource-with-dynamic-name-in-my-case –

+0

我不是一個真正的機器人。但是爲了簡化問題:如果我在androidmanifest的某個項目中放置了一些元數據,插件是否可以獲取該數據並使用它。所以,即使項目中的androidmanifest中的唯一應用程序密鑰將被識別並可用於該插件? –