2017-09-21 28 views
0

私はXamarinアプリを持っていて、アプリに入るためのパスコードが必要です。私はこのコンポーネントを使用しようとしましたが、 https://components.xamarin.com/view/lock-screenですが、なぜ動作しないのか分かりません。 (ドロイドプロジェクトで)私のMainActiviy.csファイルでパスコードの実装xamarin android

は、私はこれを追加してみました:

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

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

アプリはちょうど通常通り動作しますが、ノーロック画面。私は、同様に他の方法を試してみましたPasscodeProtectedActivityをサブクラス化することにより、パスコードで保護活動を作成することにより:(コードは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

を使用していますやります。だから私はそれを動作させる方法は?

EDIT:@ GraceFengの答えに続き

、私はパスコードを使用し、ハローボタンを表示するために得ることができ、(サンプルコードで行われているように)私はボタンを押すしかしとき、代わりに示すのパスコード画面には、私はこのラインでSystem.InvalidCastExceptionのを取得

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

注:LockLogicは、試料中のApp.csという名前のファイルに相当します

+0

これはおそらくXamarin Formsアプリケーションでは機能しません。 PasscodeProtectedActivityはネイティブアンドロイドのアクティビティであるようです。 LoadApplication()が呼び出されると、Xamarin Forms UIがユーザーに提示されます。 – Joagwa

答えて

0

はこれを利用して、私はエラーが、

これらのプロパティを「名前LoadApplicationは存在しません」「名前ToolbarResourceが存在しない」と「名前TabLayoutResourceが存在しない」と言ってもらうTabLayoutResourceToolbarResourceは、方法LoadApplicationと一緒にAppCompatActivityのサブクラスであるFormsAppCompatActivityに作成されます。 NOTMainActivityPasscodeProtectedActivityから継承するように変更することを推奨します。ロック画面の表示を希望する場合は、XFのContentViewをカスタマイズできます。

このケースは、Navigate from Xamarin Forms to Xamarin Nativeです。

次に、ソースコードXamarinPasscodeを参照して、Androidレイアウトリソースからロック画面ビューを拡張し、ロジックコードをViewRendererの内部に実装してみてください。

+0

こんにちは、お返事ありがとうございます。私はこれを試していますが、私は "ロック画面のビューを膨らませる"方法については混乱しています。あなたのリンクをたどり、LockScreen.csという名前のPCLプロジェクトで新しいクラスを作成し、Droidプロジェクトで新しいレイアウトファイルとLockScreenRendererを作成しました。csファイル – stackman

+0

(サンプルコードで行ったように)Helloボタンを表示することができましたが、パスコード画面を表示する代わりにボタンを押すと、この行にSystem.InvalidCastExceptionが発生します。 '((LockLogic )Application.Context).PasscodeManager.Show(this); ' 注:LockLogicは、サンプル内のApp.csという名前のファイルと同等ですが、別のAppを追加すると、PCLプロジェクトに既にApp.csがあります.csのDroidプロジェクトで、私は面白いエラーが出ていた – stackman

関連する問題