我有一个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的文件答案 0 :(得分:0)
使用这个,我得到的错误是“名称TabLayoutResource不存在”,“名称ToolbarResource不存在”和“名称LoadApplication不存在”
这些属性TabLayoutResource
和ToolbarResource
以及方法LoadApplication
都是在FormsAppCompatActivity
中创建的,AppCompatActivity
是MainActivity
的子类。建议不修改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')
内部实现逻辑代码。