Пример #1
0
        protected async override void OnActivated(IActivatedEventArgs args)
        {
            if (ShowInfo.Current == null)
            {
                App.Current.Exit(); return;
            }
            RegisterExceptionHandlingSynchronizationContext();
            if (args.Kind == ActivationKind.Protocol)
            {
                var protocalArgs = (ProtocolActivatedEventArgs)args;
                //check:
                if (protocalArgs.Uri.Scheme != "njuloginapp")
                {
                    return;
                }
                switch (protocalArgs.Uri.Authority.ToLower())
                {
                case "saveofflinecontent":
                    DataFetcher        tempFetcher = new DataFetcher();
                    UserPassSaver_Roam tempUPS_R = new UserPassSaver_Roam();
                    string             uname = "", upass = "";
                    tempUPS_R.Load(ref uname, ref upass);
                    if (uname != null && uname != "")
                    {
                        await tempFetcher.SaveOfflineDebuggingContent(uname, upass);
                    }
                    break;

                case "testmode":
                    ShowSettings.Current.ShowTestModeSetting();
                    break;

                case "toasttest":
                    ToastsDef.SendNotification_TwoString("Test", "通知测试");
                    break;

                default:
                    break;
                }
            }
        }
Пример #2
0
        public async Task <string> SaveOfflineDebuggingContent(string username, string password)
        {
            string Allcontent = "{  \n";

            //0号不保存
            for (int i = 0; i < (int)Pages.TopNum; ++i)
            {
                await Task.Delay(100);

                Pages  temp    = (Pages)i;
                string content = "";
                switch (temp)
                {
                case Pages.LoginPage:
                    content = await PostToUrl_WithPagesSelector(temp, username, password);;
                    if (content.Length == 0)
                    {
                        break;
                    }
                    ;                                    //说明没网,不继续这一个了
                    Allcontent += "\t" + temp.ToString() + ":" + content.RemoveEnter() + ",\n";
                    break;

                case Pages.MainPage:
                    Allcontent += "\t" + temp.ToString() + ":{For Offline Debugging Usage.  Content Prepared on " + DateTime.Today.ToString("yyyy-MM-dd") + "},\n";
                    break;

                case Pages.LogoutPage: break;

                default:
                    content = await PostToUrl_WithPagesSelector(temp);

                    if (content.Length == 0)
                    {
                        break;
                    }
                    ;                                    //说明没网,不继续这一个了
                    Allcontent += "\t" + temp.ToString() + ":" + content.RemoveEnter() + ",\n";
                    break;
                }
            }
            {
                //string content = await PostToUrl_WithPagesSelector(Pages.LogoutPage);
                //if (content.Length != 0)
                //    Allcontent += "\t" + Pages.LogoutPage.ToString() + ":" + content.RemoveEnter() + ",\n";
                if (Allcontent.Length != 0)
                {
                    Allcontent += "\t" + Pages.LogoutPage.ToString() + ":" + @"{""reply_code"":101,""reply_msg"":""下线成功!""}" + ",\n";
                }
            }
            //至此Allcontent的结尾是 "},\n" 删去两个字符可以去除逗号
            Allcontent = Allcontent.Remove(Allcontent.Count() - 2); Allcontent += "\n}";
            try
            {
                StorageFile FormmerFile = await ApplicationData.Current.LocalFolder.GetFileAsync("OfflineDebuggingContent.txt");

                await FormmerFile.DeleteAsync();
            }
            catch (Exception e) { Debug.WriteLine("将创建文件OfflineDebuggingContent.txt"); }

            StorageFile ContentFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("OfflineDebuggingContent.txt");

            try
            {
                using (Stream stream = await ContentFile.OpenStreamForWriteAsync())
                {
                    byte[] content_b = Encoding.UTF8.GetBytes(Allcontent);
                    await stream.WriteAsync(content_b, 0, content_b.Length);
                }
                ToastsDef.SendNotification_TwoString("保存数据", "已保存至: " + ContentFile.Path);
            }
            catch (Exception e) { Debug.WriteLine("未能成功写入文件"); }
            try
            {
                DataPackage pv = new DataPackage();
                pv.SetText(ContentFile.Path);
                Clipboard.SetContent(pv);
            }
            catch (Exception e) { Debug.WriteLine("未能成功复制到剪贴板"); }
            return(ContentFile.Path);
        }