gpt4 book ai didi

ios - iOS 应用程序上的一次性密码 - 建议未出现在键盘上方

转载 作者:行者123 更新时间:2023-11-29 05:22:59 25 4
gpt4 key购买 nike

我正在寻求实现在键盘顶部为 IOS 应用程序中的 OTP 条目提出 OTP 建议的位置。手机上的IOS版本是12.2。我的应用程序的 ISO SDK 版本是 12.1。使用 Visual Studio (Windows) 2017 15.9.13

现在我已经完成了以下操作......

  • 创建了一个新控件公共(public)类 OTPEntry:Xamarin.Forms.Entry
  • 为控件创建了渲染器,在此我执行 Control.TextContentType = UITextContentType.OneTimeCode;
  • 然后,我在具有正确命名空间等的 ContentPage 上使用此控件。

所以,当我在带有此控件的表单上时,我会使用 OTP 向手机发送一条短信。在手机上,如果我单击代码,它会提供“复制代码”选项,以便将其识别为 OTP。但是,对于我来说,当我点击控件以调出键盘时,我没有按预期在键盘顶部看到代码。

我可能会错过什么?看来实现这个的步骤相对简单,但我似乎无法让它工作。

任何想法、指示将不胜感激。

下面的代码...

控制 - Xamarin Forms 项目

namespace XXXX
{
public class OTPEntry : Xamarin.Forms.Entry
{
public OTPEntry()
{
}
}
}

渲染器 - 在 IOS 项目中

namespace XXXX.YYYY.ZZZZ
{
public class OTPEntryRenderer : EntryRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);

if (e.NewElement != null)
{
Control.TextContentType = UITextContentType.OneTimeCode;
}
...
...
}
}
}

用法 - Xamarin Forms 项目的内容页面

<XXXX:OTPEntry x:Name="txtToken" Keyboard="Numeric" Placeholder="Two Factor Code" HeightRequest="50" WidthRequest="300" TextColor="#2A295B" BackgroundColor="White" Margin="0"/>

最佳答案

首先,OneTimeCode在iOS 12.0之后可用,所以我建议在CustomRenderer中添加以下代码

if (UIDevice.CurrentDevice.CheckSystemVersion(12, 0))
{
Control.TextContentType = UITextContentType.OneTimeCode;
}

当 OTP 消息接收到消息收件箱时,iOS 会运行一个简单的文本匹配算法,确定该消息是否是有效的 OTP 消息,并根据该算法在内存中对其进行跟踪,然后当用户单击应用程序中启用 OTP 自动填充的文本字段时,iOS 键盘会在键盘中弹出该 OTP 作为建议。这样您的用户就可以将 OTP 填写到应用程序中,而无需离开应用程序或返回消息应用程序。

您需要检查OTP的格式是否正确。验证短信验证码格式是否合法的一种方法是在iPhone上打开[短信],点击短信验证码,如果来自通话底部option复制验证码选项,可以表明可以;

并且不要忘记在系统设置 -> 帐户和密码中打开自动填充密码

关于ios - iOS 应用程序上的一次性密码 - 建议未出现在键盘上方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58485845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com