示例#1
0
        public AuthorizePage()
        {
            InitializeComponent();
            Title = "登录";
            var cancel = new ToolbarItem
            {
                Text    = "关闭",
                Command = new Command(async() =>
                {
                    await Navigation.PopModalAsync();
                })
            };

            ToolbarItems.Add(cancel);

            if (Device.Android == Device.RuntimePlatform)
            {
                cancel.Icon = "toolbar_close.png";
            }

            FormsWebView.OnNavigationCompleted += OnNavigationCompleted;

            FormsWebView.Source = string.Format(Apis.Authorize, TokenHttpClient.ClientId);

            popupPage = new ActivityIndicatorPopupPage();

            Navigation.PushPopupAsync(popupPage);
        }
示例#2
0
        public BookmarksDetailsPage(Bookmarks bookmarks) : base()
        {
            InitializeComponent();
            Title = bookmarks.Title;

            var cancel = new ToolbarItem
            {
                Text    = "分享",
                Command = new Command(() =>
                {
                    DependencyService.Get <IShares>().Shares(bookmarks.LinkUrl, bookmarks.Title);
                })
            };

            ToolbarItems.Add(cancel);

            if (Device.Android == Device.RuntimePlatform)
            {
                cancel.Icon = "toolbar_share.png";
            }


            FormsWebView.OnNavigationCompleted += OnNavigationCompleted;
            FormsWebView.OnNavigationError     += OnNavigationError;

            FormsWebView.Source = bookmarks.LinkUrl;

            popupPage = new ActivityIndicatorPopupPage();
        }
示例#3
0
        private async void OnNavigationCompleted(object sender, string url)
        {
            if (url.IndexOf("https://passport.cnblogs.com/user/signin?returnUrl=") > -1)
            {
                await Navigation.RemovePopupPageAsync(popupPage);
            }
            if (url.IndexOf("https://oauth.cnblogs.com/auth/callback#code=") > -1)
            {
                if (popupPage == null)
                {
                    popupPage = new ActivityIndicatorPopupPage();
                }
                await Navigation.PushPopupAsync(popupPage);

                try
                {
                    FormsWebView.IsVisible = false;
                    var codeindex  = url.IndexOf("#code=") + 6;
                    var tokenindex = url.IndexOf("&id_token=");
                    var code       = url.Substring(codeindex, tokenindex - codeindex);
                    if (code != "")
                    {
                        var result = await TokenHttpClient.Current.PostTokenAsync(code);

                        if (result.Success)
                        {
                            var token = JsonConvert.DeserializeObject <Token>(result.Message.ToString());
                            token.RefreshTime = DateTime.Now;
                            UserTokenSettings.Current.UpdateUserToken(token);
                            var userResult = await UserHttpClient.Current.GetAsyn(Apis.Users);

                            if (userResult.Success)
                            {
                                var user = JsonConvert.DeserializeObject <User>(userResult.Message.ToString());
                                UserSettings.Current.UpdateUser(user);
                                await Navigation.PopModalAsync();
                            }
                            else
                            {
                                await DisplayAlert("登录", "登录失败", "确定");
                            }
                        }
                        else
                        {
                            await DisplayAlert("登录", "获取token失败", "确定");
                        }
                    }
                    else
                    {
                        await DisplayAlert("登录", "获取Code失败", "确定");
                    }
                }
                catch (Exception ex)
                {
                    await DisplayAlert("登录", ex.Message, "确定");
                }
            }
        }
示例#4
0
        public async Task ExecuteBookmarkEditAsync()
        {
            var toast   = DependencyService.Get <IToast>();
            var title   = this.EntryTitle.Text;
            var link    = this.EntryLink.Text;
            var tags    = this.EntryTags.Text;
            var summary = this.EditorSummary.Text;

            if (title == null)
            {
                toast.SendToast("请输入标题");
            }
            else if (title.Length < 3)
            {
                toast.SendToast("标题最少要3个字.");
            }
            else if (link == null)
            {
                toast.SendToast("请输入网址.");
            }
            else if (link.Length < 3)
            {
                toast.SendToast("网址最少要3个字.");
            }
            else
            {
                bookmarks.Title = title;
                if (tags != null)
                {
                    bookmarks.Tags = tags.Split(',').ToList();
                }
                bookmarks.LinkUrl   = link;
                bookmarks.Summary   = summary;
                bookmarks.DateAdded = DateTime.Now;

                if (popupPage == null)
                {
                    popupPage = new ActivityIndicatorPopupPage();
                }
                await Navigation.PushPopupAsync(popupPage);

                if (await ViewModel.ExecuteBookmarkEditCommandAsync(bookmarks))
                {
                    await Navigation.RemovePopupPageAsync(popupPage);

                    if (result != null)
                    {
                        result.Invoke(bookmarks);
                    }
                    Navigation.RemovePage(this);
                }
                else
                {
                    await Navigation.RemovePopupPageAsync(popupPage);
                }
            }
        }
        public async Task ExecuteQuestionkEditAsync()
        {
            var toast   = DependencyService.Get <IToast>();
            var title   = this.entryTitle.Text;
            var tags    = this.entryTags.Text;
            var content = this.editorContent.Text;

            if (title == null)
            {
                toast.SendToast("请输入标题");
            }
            else if (title.Length < 3)
            {
                toast.SendToast("标题最少要3个字.");
            }
            else
            {
                if (AboutSettings.Current.WeibaToggled && questions.Qid == 0)
                {
                    content += "\r\n[" + AboutSettings.Current.WeibaContent + "]";
                }

                questions.Title            = title;
                questions.Tags             = tags;
                questions.Summary          = content;
                questions.Content          = content;
                questions.DateAdded        = DateTime.Now;
                questions.QuestionUserInfo = new QuestionUserInfo()
                {
                    UserID   = UserSettings.Current.SpaceUserId,
                    UserName = UserSettings.Current.DisplayName,
                    IconName = UserSettings.Current.Avatar
                };
                if (popupPage == null)
                {
                    popupPage = new ActivityIndicatorPopupPage();
                }
                await Navigation.PushPopupAsync(popupPage);

                if (await ViewModel.ExecuteQuestionsEditCommandAsync(questions))
                {
                    await Navigation.RemovePopupPageAsync(popupPage);

                    if (result != null)
                    {
                        result.Invoke(questions);
                    }
                    Navigation.RemovePage(this);
                }
                else
                {
                    await Navigation.RemovePopupPageAsync(popupPage);
                }
            }
        }
        public AuthorizePage()
        {
            InitializeComponent();
            Title = "登录";

            FormsWebView.OnNavigationCompleted += OnNavigationCompleted;
            FormsWebView.OnNavigationError     += OnNavigationError;

            FormsWebView.Source = string.Format(Apis.Authorize, TokenHttpClient.ClientId);

            popupPage = new ActivityIndicatorPopupPage();
        }
示例#7
0
        public async Task ExecuteStatusesEditAsync()
        {
            var toast   = DependencyService.Get <IToast>();
            var content = this.editorContent.Text;

            if (content == null)
            {
                toast.SendToast("Please Enter Content");
            }
            else if (content.Length < 3)
            {
                toast.SendToast("Content At Least 3 Words.");
            }
            else
            {
                if (AboutSettings.Current.WeibaToggled && statuses.Id == 0)
                {
                    content += "\r\n[" + AboutSettings.Current.WeibaContent + "]";
                }

                statuses.Content         = content;
                statuses.DateAdded       = DateTime.Now;
                statuses.UserId          = UserSettings.Current.SpaceUserId;
                statuses.UserDisplayName = UserSettings.Current.DisplayName;
                statuses.UserIconUrl     = UserSettings.Current.Avatar;
            };
            if (popupPage == null)
            {
                popupPage = new ActivityIndicatorPopupPage();
            }
            await Navigation.PushPopupAsync(popupPage);

            if (await ViewModel.ExecuteStatusesEditCommandAsync(statuses))
            {
                await Navigation.RemovePopupPageAsync(popupPage);

                if (result != null)
                {
                    result.Invoke(statuses);
                }
                Navigation.RemovePage(this);
            }
            else
            {
                await Navigation.RemovePopupPageAsync(popupPage);
            }
        }
        public async Task ExecuteStatusesEditAsync()
        {
            var toast   = DependencyService.Get <IToast>();
            var content = this.editorContent.Text;

            if (content == null)
            {
                toast.SendToast("请输入内容");
            }
            else if (content.Length < 3)
            {
                toast.SendToast("内容最少要3个字.");
            }
            else
            {
                statuses.Content         = content;
                statuses.DateAdded       = DateTime.Now;
                statuses.UserId          = UserSettings.Current.SpaceUserId;
                statuses.UserDisplayName = UserSettings.Current.DisplayName;
                statuses.UserIconUrl     = UserSettings.Current.Avatar;
            };
            if (popupPage == null)
            {
                popupPage = new ActivityIndicatorPopupPage();
            }
            await Navigation.PushPopupAsync(popupPage);

            if (await ViewModel.ExecuteStatusesEditCommandAsync(statuses))
            {
                await Navigation.RemovePopupPageAsync(popupPage);

                if (result != null)
                {
                    result.Invoke(statuses);
                }
                Navigation.RemovePage(this);
            }
            else
            {
                await Navigation.RemovePopupPageAsync(popupPage);
            }
        }