我們正在構建一個網絡應用程序,該應用程序爲用戶創建自己的移動應用程序並管理其個人資料中的內容提供了一種能力。移動應用程序對我們所有的用戶具有相似的功能,唯一不同的是它的內容。所以,當一個人來我們的網絡服務中創建一個移動應用程序,然後他添加一些新聞,照片等 - 他的移動應用程序應該只顯示他的新聞和照片,另一個人將擁有自己的移動應用程序與他自己的新聞和照片。識別來自JS的Phonegap移動應用程序
要獲取特定應用程序的內容,我們有唯一的API KEY,使用此API KEY移動應用程序將向我們的API發出請求以獲取唯一內容。
但主要問題是,我們不知道如何在移動應用程序中嵌入此API KEY。
這裏的情況是:
-
我們使用PhoneGap的創建移動應用程序
- ,原來的代碼是HTML + JS。爲了構建應用程序,我們使用Phonegap Build API,這需要從Github存儲庫或ZIP存檔提供JS應用程序。唯一不同的是內容(HTML + JS代碼庫對於每個用戶應用程序都是相同的),我們決定爲所有用戶應用程序使用單個Github存儲庫。此外,維護一個存儲庫比多個存儲庫更容易
- 我們使用Phonegap Build API爲用戶自動創建移動應用程序。因此,當用戶按下「創建」時 - PhoneGap移動應用程序正在使用Github存儲庫代碼創建。 Phonegap Build API的'create'方法允許設置應用程序的標題,描述,版本,軟件包等。所以每個應用程序都有一些自定義設置。這些設置可以在應用程序構建發生前後進行配置,因此我們可以更改標題或版本或包。
在這種情況下,JS代碼在每個應用程序中都是相同的,我們無法硬編碼JS代碼中的唯一API密鑰以進行API調用。我們可以使用這些可配置的選項(標題,描述等),最好的是「包」,我們可以在其中設置唯一的應用程序標識符(例如「com.application.user1app」),但問題是我們可以'在應用程序構建完成後直接在設備上使用JS。我們已經找到了一些定製的phonegap插件,它們能夠在JS內部獲得應用程序版本或應用程序名稱,但它們已經過時或不再受到支持,Phonegap默認插件也沒有這個功能。由於我們不是原生的移動開發人員,所以編寫自定義插件是一個問題(或者您知道phonegap 3.1.0的任何插件會返回應用程序的軟件包名稱,這將有很大幫助)
問題是:您認爲,有沒有其他方法可以從構建應用程序的JS中識別具體用戶的應用程序在運行?確定移動應用程序應該在哪裏進行API調用? (如果我們不能硬編碼API KEY,並且沒有插件)。
我們的計劃並不嚴格,所以如果不存在任何其他方法,我們會要求一個自定義插件或修改應用程序創建過程的方案。 謝謝。
你爲什麼不使用設備UUID,而不是一個API密鑰的?你可以爲每個設備獲得獨特的內容。如果你真的想使用API密鑰,它可以在第一次連接時發送到設備並存儲在本地存儲中。 – QuickFix
@QuickFix,一個應用程序可以安裝在多個設備上,我們不需要識別設備,而是識別設備上運行的應用程序。一個應用程序適用於一個網站用戶,而不是一個設備。如果我們有很多用戶應用程序,我們想知道什麼應用程序向API發出請求,有關設備的信息不會提供此信息。要在第一次連接時向設備發送API密鑰,我們應該知道應用程序正在請求它,以獲取該應用程序的API密鑰。 –