public AnswersDetailsPage(QuestionsAnswers answers) { InitializeComponent(); Xamarin.Forms.PlatformConfiguration.iOSSpecific.Page.SetUseSafeArea(this, true); this.answers = answers; BindingContext = new AnswersDetailsViewModel(answers); formsWebView.OnContentLoaded += delegate(object sender, EventArgs e) { RefreshAnswers(); }; formsWebView.AddLocalCallback("reload", async delegate(string obj) { if (formsWebView.LoadStatus == LoadMoreStatus.StausDefault || formsWebView.LoadStatus == LoadMoreStatus.StausError || formsWebView.LoadStatus == LoadMoreStatus.StausFail) { var questionsComments = JsonConvert.SerializeObject(await ViewModel.ReloadCommentsAsync()); await formsWebView.InjectJavascriptAsync("updateComments(" + questionsComments + ");"); } }); formsWebView.AddLocalCallback("editItem", delegate(string id) { var questionsAnswers = ViewModel.AnswersComments.Where(n => n.CommentID == int.Parse(id)).FirstOrDefault(); Device.BeginInvokeOnMainThread(async() => { var page = new AnswersCommentPopupPage(answers, new Action <AnswersComments>(OnResult), questionsAnswers); await Navigation.PushPopupAsync(page); }); }); formsWebView.AddLocalCallback("deleteItem", async delegate(string id) { var result = await ViewModel.DeleteAnswersCommentsAsync(int.Parse(id)); await formsWebView.InjectJavascriptAsync("deleteComment(" + id + "," + result.ToString().ToLower() + ");"); }); }
protected override bool OnBackButtonPressed() { if (popupPage != null) { Navigation.RemovePopupPageAsync(popupPage); popupPage = null; return(true); } return(base.OnBackButtonPressed()); }
async void OnShowComment(object sender, EventArgs args) { if (UserTokenSettings.Current.HasExpiresIn()) { MessagingService.Current.SendMessage(MessageKeys.NavigateLogin); } else { popupPage = new AnswersCommentPopupPage(answers, new Action <AnswersComments>(OnResult)); if (popupPage != null && Navigation != null) { await Navigation.PushPopupAsync(popupPage); } } }