首页 > 解决方案 > 如何使用 DeviceCheck.DCDevice Xamarin Forms C# 生成令牌代码 iOS DeviceId

问题描述

我正在使用 Xamarin Forms,我需要来自 iOS 设备的设备 ID。当应用程序被删除并重新安装时,这种情况会发生变化。我需要设备的恒定设备 ID。

我被告知可以在 Xamarin 表单 iOS 中使用 DeviceCheck.DCDevice。这会通过 Apple 生成一个标识设备的令牌。有没有人可以遵循的代码示例来实现这一点?使用 DCDevice.GenerateToken ... C# iOS

标签: iosxamarin.formsxamarin.ios

解决方案


在 Xamarin 窗体 iOS 中使用 DeviceCheck.DCDevice。

if (DCDevice.CurrentDevice.Supported)
   {
       DCDeviceGenerateTokenCompletionHandler handler = (NSData token, NSError error) =>
           {                    
                   // Upload token to App server
           };
       DCDevice.CurrentDevice.GenerateToken(handler);
   }       

DeviceCheck.DCDevice据我了解,要在 Xamarin.iOS 中使用,DeviceCheck不会提供类似的设备 ID,IdentifierForVendor或者UUId不会更改并始终代表该设备。请注意,DeviceCheck仅在 iOS 11 以上可用。

您的应用程序使用 DeviceCheck API 生成用于标识设备的临时令牌。您的关联服务器将此令牌与您从 Apple 收到的身份验证密钥结合起来,并使用结果请求访问每个设备的位。

我认为识别设备的方法DeviceCheck.DCDevice取决于您的应用程序的业务逻辑。

您可以阅读这篇文章(devicecheck-tutorial)以更好地了解 DeviceCheck 真正在做什么,然后达到您的要求。

这里还有一个 swift 示例,您可以参考:DeviceCheckSample

苹果文档:devicecheck

我正在使用 Xamarin Forms,我需要来自 iOS 设备的设备 ID。我需要设备的恒定设备 ID。

还有其他几个选项供您选择:

  1. 将您的设备 ID 存储在 中Keychain,它可能会在应用程序删除/重新安装后持续存在。

  2. 如果您的应用有广告,您可以使用广告标识符来识别设备并将此数据发送到服务器以检查设备 ID。


推荐阅读