您可以使用下面的DeviceIDs解決方案作爲用戶註冊的主鍵。看:
1 - Android電子
1.1 - Android手機(帶SIM芯片) -對於Android的我用的是科爾多瓦SIM插件。它根據SIM芯片信息爲設備生成uniqueID。所以,你可以基於插件返回來操縱你的數據;
鏈接:https://github.com/pbakondy/cordova-plugin-sim
1.2 - 的Adroid片 -上面的插件是太棒了,但它不會爲沒有任何SIM芯片的設備。在這種情況下,我使用下面的代碼:
if(mContext == null){
mContext = this.cordova.getActivity();
if(dialog == null){
dialog = new ProgressDialog(mContext);
}
}
String tabletID = Secure.getString(mContext.getContentResolver(), Secure.ANDROID_ID);
結論:如果你只爲手機開發程序(App預計移動電話),你應該使用插件。如果您的應用針對平板電腦或沒有SIM卡的設備,則可以查看其他解決方案。生成的ID是「設備ID」,對於每個設備都是唯一的。
2 - 的iOS
對於iOS,我使用以下代碼來產生用於每一個設備的唯一的ID:
NSString *uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
唯一的問題:當用戶卸載的所有應用的來自設備的iTunes供應商ID並再次安裝它們中的任何一個,ID將被更改。自從系統的7.0版本以後,其他獲取iOS唯一ID的簡單方法已棄用。
查看更多這裏:Device Id from an iphone app
感謝您的回答。由於付費訂閱連接到用戶帳戶,這似乎不是一個可能的解決方案。如果我收到一個新的設備,信息就會消失:-( –
)您是否聽說過FireBase Db?您可以爲每個用戶創建唯一的ID,並使用javascript爲cordova項目輕鬆同步數據。此外,如果您使用此解決方案,這個ID將會是獨特的,在 –
Mhm之間,但是當用戶購買一部新手機時,所有這些信息在這種情況下都消失了,不是嗎!? –