我正在使用Xamarin Forms创建一个应用程序,当用户第一次启动应用程序时,它们会被发送到登录页面.一旦他们登录,他们就会被重定向到MasterPage,这是一个MasterDetail页面.但是,当我尝试导航到新的MasterDetail页面时,我只获得了详细页面,并且缺少显示主部分的按钮.应用栏上出现的唯一内容是我设置的标题.我目前正在使用这样的MasterPage:
App.Current.MainPage = new NavigationPage(new MasterPage())
{
Title = "Welcome " + user.firstName
};
Run Code Online (Sandbox Code Playgroud)
每次运行,这都不是问题,因为当用户打开应用程序时,它会自动将它们登录并直接进入MasterPage,除非在第一次使用时.但是,这对我来说是一个非常重要的问题,因为它发生在用户第一次使用我的应用程序时,它将成为他们第一印象的一部分.
我正在使用FormsCommunityToolkit NuGet包来使我的Xamarin.Forms应用程序中的所有条目在用户点击它们时选择所有文本.他们的GitHub上的例子Entry
在XAML中使用这个效果是这样的:
<Entry Placeholder="focus this entry." VerticalOptions="Start" Text = "FOCUS THIS!">
<Entry.Effects>
<effects:SelectAllTextEntryEffect />
</Entry.Effects>
</Entry>
Run Code Online (Sandbox Code Playgroud)
如果你把它放在Entry
你的代码中的每个人身上,这是有效的,但我有很多条目,并希望将其设置为我的App.xaml
文件夹中的默认值.我试过这个:
<Style TargetType="Entry">
<Setter Property="Keyboard" Value="Text"/> <!--Defaults to capitalize first word-->
<Setter Property="Effects" Value="effects:SelectAllTextEntryEffect" />
</Style>
Run Code Online (Sandbox Code Playgroud)
此方法适用于设置Keyboard
所有条目的默认值,但以这种方式设置效果会使应用程序崩溃,并显示以下错误:
Can't resolve EffectsProperty on Entry
Run Code Online (Sandbox Code Playgroud)
有没有人知道这样做的方法所以我不需要将代码添加到我的所有条目中?
我正在创建一个 Xamarin.Forms 应用程序,使用 Azure B2C 和 MSAL(Microsoft.Identity.Client
NuGet 包)对用户进行身份验证。当应用程序打开时,我尝试使用以下代码在后台对它们进行身份验证:
AuthenticationResult ar;
ar = await App.AuthenticationClient.AcquireTokenSilentAsync(Scopes,
userIdentifier, Authority,
SignUpSignInpolicy, false);
Run Code Online (Sandbox Code Playgroud)
如果失败,应用程序会切换并使用标准AquireTokenAsync()
方法对其进行身份验证。
AuthenticationResult ar;
ar = await App.AuthenticationClient.AcquireTokenAsync(Config.Scopes,
"", UiOptions.SelectAccount,
string.Empty, null, Config.Authority,
Config.SignUpSignInpolicy);
Run Code Online (Sandbox Code Playgroud)
在SignUpSignInpolicy
我使用了电子邮件,姓和名,对象ID和生日这是一个自定义字符串属性申请要求。
我想要做的是获取经过身份验证的用户的电子邮件、姓名和生日(如果他们必须登录),以便我可以从该数据创建一个用户对象,该对象将在整个应用程序中使用。有没有办法从AuthenticationResult
? 如果没有,我该如何检索SignUpSignIn
申请声明?我是身份验证的新手,所以我可能遗漏了一些重要的东西。