首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >How to generate a token code iOS DeviceId using DeviceCheck.DCDevice Xamarin Forms C#

How to generate a token code iOS DeviceId using DeviceCheck.DCDevice Xamarin Forms C#
EN

Stack Overflow用户
提问于 2019-01-16 15:11:51
回答 2查看 1.1K关注 0票数 2

我正在使用Xamarin表单,我需要来自iOS设备的设备Id。当删除并重新安装应用程序时,这一点会发生变化。我需要设备的常量设备Id。

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

EN

回答 2

Stack Overflow用户

发布于 2019-01-17 15:14:46

在Xamarin forms iOS中使用DeviceCheck.DCDevice。

代码语言:javascript
复制
if (DCDevice.CurrentDevice.Supported)
   {
       DCDeviceGenerateTokenCompletionHandler handler = (NSData token, NSError error) =>
           {                    
                   // Upload token to App server
           };
       DCDevice.CurrentDevice.GenerateToken(handler);
   }       

要在Xamarin.iOS中使用DeviceCheck.DCDevice,据我所知,DeviceCheck不会给出像IdentifierForVendorUUId这样的设备ID,它不会改变,并且总是代表该设备。请注意,只有iOS 11以上的版本才能使用DeviceCheck

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

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

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

这里还有一个你可以参考的swift示例:DeviceCheckSample

苹果文档:devicecheck

我正在使用Xamarin表单,我需要来自iOS设备的设备Id。我需要设备的常量设备Id。

您还可以选择其他几个选项:

  1. 将您的设备ID存储在Keychain中,它可能会在应用程序删除/重新安装过程中保留下来。
  2. 如果您的应用程序有广告,则可以使用Advertising Identifier识别设备并将此数据发送到服务器以检查设备ID。
票数 2
EN

Stack Overflow用户

发布于 2019-01-16 21:12:23

由于您使用的是Xamarin.Forms,因此需要使用DependencyService。

下面是操作步骤:

首先在窗体项目中声明一个接口

代码语言:javascript
复制
public interface IDeviceInfo {
    string GetDeviceId ( ); //note that interface members are public by default
}

然后,在iOS项目中,

代码语言:javascript
复制
[assembly: Dependency (typeof (DeviceInfoiOS))]
    namespace YourNameSpace.iOS
    {
        public class DeviceInfoiOS : IDeviceInfo
        {
            public string GetDeviceId ()
            {
                return UIDevice.CurrentDevice.IdentifierForVendor.AsString();        
        }
    }

用法:

代码语言:javascript
复制
DependencyService.Get<IDeviceInfo>().GetDeviceId();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54212000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档