簡體   English   中英

Cordova 設備 UUID 是否與電容器設備 UUID 相同?

[英]Is the Cordova Device UUID the same as the Capacitor Device UUID?

我們正在從 Ionic Cordova 應用程序遷移到 Ionic Capacitor 應用程序。 雖然我知道 Capacitor 仍然支持 Cordova 插件,但我們盡量遷移。

我們的應用依賴於 Cordova 設備插件提供的設備 UUID。 這和Capacitor提供的設備UUID一樣嗎? 我試圖比較兩個存儲庫,但我不完全確定 Android 實際上是否相同(下面給出的方法中的第一個參數是什么)?

這是我的比較:

iOS Cordova:

[[device identifierForVendor] UUIDString]

來源: https://github.com/apache/cordova-plugin-device/blob/2fc1d3cac0ed37a37de6a6aa18e7955342037a1d/src/ios/CDVDevice.m#L52-L74

Android Cordova:

Settings.Secure.getString(this.cordova.getActivity().getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);

來源: https://github.com/apache/cordova-plugin-device/blob/2fc1d3cac0ed37a37de6a6aa18e7955342037a1d/src/android/Device.java#L111-L114

iOS 電容器:

UIDevice.current.identifierForVendor..uuidString

來源: https://github.com/ionic-team/capacitor-plugins/blob/0bcd833a6503061be45253b21fca9bd75576efc8/device/ios/Plugin/DevicePlugin.swift#L28

Android 電容器:

Settings.Secure.getString(this.context.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);

來源: https://github.com/ionic-team/capacitor-plugins/blob/0bcd833a6503061be45253b21fca9bd75576efc8/device/android/src/main/java/com/capacitorjs/plugins/device/Device.java#L43-L45

iOS

一樣的。 iOS 情況的唯一區別是訪問uuidString的方式。 Cordova 插件是用 Objective-C 編寫的,而電容器插件是 Swift。 不過,兩者都應該返回相同的值。

Android

Android 插件似乎也引用了相同的值,只是方式不同。 兩者都將應用活動上下文中的內容解析器作為第一個參數傳遞給Settings.Secure.getString() 區別: this.context.getContentResolver()this.cordova.getActivity().getContentResolver()是如何訪問 Context(Android 開發的一個大話題)。

Cordova 插件

來自 Cordova 插件指南

getContext()和getActivity()可以返回需要的Context object

電容插件

如果您通過電容器插件的代碼 go ,作為主入口點的文件調用getContext()並直接將其傳遞給Device() 構造函數

簡而言之,兩者都指的是同一個活動上下文。 this.contextthis.cordova.getActivity()相同

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM