我正在研究Xamarin.Froms(PCL)项目。我正在使用Azure移动服务将登录身份验证添加到我的测试应用程序。但我一直得到一个未处理的例外。每次我运行这行代码
user = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(this, MobileServiceAuthenticationProvider.Facebook, Constants.ApplicationURL);
此代码段来自我的“{myApp} .Droid”MainActivity。
MainActivity.cs
public class MainActivity : FormsApplicationActivity, IAuthenticate
{
private MobileServiceUser user;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
// Initialize Azure Mobile Apps
CurrentPlatform.Init();
// Initialize Xamarin Forms
Forms.Init(this, bundle);
// Initialize login provider
App.Init((IAuthenticate)this);
// Load the main application
LoadApplication (new App ());
}
public async Task<bool> Authenticate()
{
var success = false;
var message = string.Empty;
try
{
//var token = new JObject { { "access_token", "access_token_value" } };
user = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(this, MobileServiceAuthenticationProvider.Facebook, Constants.ApplicationURL);
if (user != null)
{
message = string.Format("You are now signed in as {0}.", user.UserId);
success = true;
}
}
catch (Exception ex)
{
message = ex.Message;
}
// Display success or failure message
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.SetMessage(message);
builder.SetTitle("Sign-in Result");
builder.Create().Show();
return success;
}
}`
MyApp运行但Facebook身份验证页面未显示。因为我的应用程序每次运行应用程序时都会崩溃。
的MSDN文件的链接答案 0 :(得分:0)
以下是我尝试复制Adding Authentication to Azure Mobile Clients的MSDN文件的链接。
我注意到您提供的链接是关于向 Xamarin.Android 应用添加身份验证。要将身份验证添加到Xamarin.Forms的Android应用程序项目中,您可以参考Add authentication to the portable class library和Add authentication to the Android app。
使用服务器管理的流程登录Facebook登录
MobileServiceUser user = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(this,
MobileServiceAuthenticationProvider.Facebook);
此外,您可以调试并收集崩溃报告以缩小此问题。这是关于Debugging and Error Tracking的文档,您可以参考它。
<强>更新强>
对于使用Microsoft.Azure.Mobile.Client 4.0.1,我关注Add your app to the Allowed External Redirect URLs并在Azure门户上添加bruceapp://easyauth.callback
作为允许的外部重定向网址。
然后,使用以下代码进行登录操作:
user = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount, "bruceapp");
我查看了我的bruce_mobile.UWP项目,登录操作可以按预期工作。