Cordova设备UUID是否与电容器设备UUID相同



我们正在从Ionic Cordova应用程序迁移到Ionic Capacitor应用程序。虽然我知道Capacitor仍然支持Cordova插件,但我们尽可能多地迁移。

我们的应用程序依赖于Cordova设备插件提供的设备UUID。这与电容器提供的设备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编写的,而Capacitor插件是Swift。不过,应该为两者返回相同的值。

Android

安卓插件似乎也引用了相同的值,只是方式不同而已。两者都将应用程序"活动"上下文中的内容解析程序作为第一个参数传递给Settings.Secure.getString()this.context.getContentResolver()this.cordova.getActivity().getContentResolver()的区别在于如何访问Context(Android开发中的一个大主题(。

Cordova插件

根据Cordova插件指南,

getContext((和getActivity((可以返回所需的Context对象

电容器插件

如果您浏览了Capacitor插件的代码,作为主要入口点的文件会调用getContext()并直接将其传递给Device()构造函数。

简而言之,两者都引用相同的活动上下文。this.contextthis.cordova.getActivity()相同

相关内容

  • 没有找到相关文章

最新更新