实现密码xamarin android

时间:2017-09-21 09:46:25

标签: c# android xamarin xamarin.forms xamarin.android

我有一个Xamarin应用程序,我希望它有一个密码进入应用程序。我试过用这个组件, https://components.xamarin.com/view/lock-screen但我不知道为什么它不起作用。

在我的MainActiviy.cs文件中(在Droid项目中)我尝试添加:

    protected override void OnStart()
    {
        base.OnStart();
        Locker.OnStart(this);
    }

    protected override void OnPause()
    {
        base.OnPause();
        Locker.OnPause(this);
    }

然而,该应用程序只是正常运行,没有锁定屏幕。我尝试了另一种方法,通过继承PasscodeProtectedActivity创建受密码保护的Activity :(代码与MainActivity类中的代码相同)

public class MyProtectedActivity : PasscodeProtectedActivity
{
    protected override void OnCreate(Bundle bundle)
    {

        MobileAds.Initialize(ApplicationContext, "myId");
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;

        base.OnCreate(bundle);

        global::Xamarin.Forms.Forms.Init(this, bundle);
        LoadApplication(new App());
    }
}

使用这个,我得到的错误是“名称TabLayoutResource不存在”,“名称ToolbarResource不存在”和“名称LoadApplication不存在”

MainActivity类使用此

public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity

我无法做到。那么我该如何让它发挥作用呢?

修改

按照@ GraceFeng的回答,我使用了Passcode并设法得到hello按钮显示,(如示例代码中所示)但是当我按下按钮,而不是显示密码屏幕时,我得到一个系统。此行的InvalidCastException

((LockLogic)Application.Context).PasscodeManager.Show(this);

注意:LockLogic相当于样本

中名为App.cs的文件

1 个答案:

答案 0 :(得分:0)

  

使用这个,我得到的错误是“名称TabLayoutResource不存在”,“名称ToolbarResource不存在”和“名称LoadApplication不存在”

这些属性TabLayoutResourceToolbarResource以及方法LoadApplication都是在FormsAppCompatActivity中创建的,AppCompatActivityMainActivity的子类。建议修改PasscodeProtectedActivity以继承ContentView,如果您想要显示锁定屏幕视图,则可以尝试自定义ViewRenderer在XF。

您可以参考此案例:Navigate from Xamarin Forms to Xamarin Native

然后在这里你可以参考XamarinPasscode的源代码,尝试从Android布局资源中膨胀锁定屏幕视图,并在Index([ u'asin', u'view_publish_data', u'data_viewer', u'relationship_viewer', u'parent_task_id', u'submission_id', u'source', u'creation_date', u'created_by', u'vendor_code', u'week', u'processor', u'brand_name', u'brand_name_new', u'bullet_point', u'cost_price', u'country_of_origin', u'cpu_type', u'cpu_type_new', u'item_name', u'item_type_keyword', u'list_price', u'minimum_order_quantity', u'model', u'product_category', u'product_site_launch_date', u'product_subcategory', u'product_tier_id', u'replenishment_category', u'product_description', u'style_name', u'vc', u'vendor_code', u'warranty_description'], dtype='object') 内部实现逻辑代码。