【问题标题】:How to implement lockscreen in Xamarin forms application?如何在 Xamarin 表单应用程序中实现锁屏?
【发布时间】:2018-03-12 10:33:06
【问题描述】:

我正在尝试访问 xamarin forms pcl 项目中的设备锁屏。我听说过第三方组件,例如 Lockscreen 和 Passcode,但我不知道该怎么做,因为这是一个 xamarin 表单应用程序而不是 xamarin.android。我将如何在我的 xamarin 表单应用程序的 android 项目中实现比方说 Lockscreen?

【问题讨论】:

  • 在 PCL 中,您仍然可以像在 Xamarin.Android 或 Xamarin.iOS 中那样实现 Lock Screen。只需将锁屏代码添加到各个 Android 和 iOS 项目即可。您还可以添加一个依赖服务来调用Locker.Activate()。更多详情请参见以下网站:components.xamarin.com/view/lock-screen
  • 我将如何实现依赖服务?
  • 我的回答展示了如何实现依赖服务

标签: xamarin xamarin.forms xamarin.android


【解决方案1】:

在 Xamarin Forms 中调用 Locker.Activate() 的一种方法是使用依赖项服务。在您的 Xamarin.Forms 项目中,您可以添加以下代码来调用依赖项服务:

switch (Device.RuntimePlatform)
{
    case Device.Android:
        DependencyService.Get<IAndroidMethods>().activateLock();
        break;
    case Device.iOS:
        DependencyService.Get<IAppleMethods>().activateLock();
        break;
}

然后在您的 Xamarin.Forms 项目中,创建两个接口:IAppleMethodsIAndroidMethods,其中包含 activateLock() 方法。

我将展示IAndroidMethods 的实现:

public interface IAndroidMethods
{
    void activateLock();
}

然后,在您的 iOS 和 Android 项目中,创建实现您刚刚创建的接口的类。这将是你的 android 类:

//add appropriate using declarations
[assembly: Xamarin.Forms.Dependency(typeof(AndroidMethods))]
namespace <YourApp>.Droid
{
    public class AndroidMethods : IAndroidMethods
    {
        public void activateLock()
        {
            Locker.Activate(Xamarin.Forms.Forms.Context); //Not sure about any other parameters you need to pass in
        }
    }
}

【讨论】:

  • locker.activate() 接受一个参数,即当前上下文,或者我会说一个活动。我如何获得当前的活动?
  • 你可以试试Xamarin.Forms.Forms.Context
  • 是的,但是在输入正确的密码后,应用程序不会移动到应用程序的下一个屏幕。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
  • 1970-01-01
  • 2021-12-26
  • 2011-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多