async void GetKbArticleContent(Action callBack) { try { var result = await HttpClient.KbArticlesService.GetKbArticles(AccessTokenUtil.GetToken(this), ID); if (result.Success) { string content = result.Data; firstImgUrl = HtmlUtil.GetHtmlFirstImgUrl(content); content = content.ReplaceHtml().Trim('"'); content = HtmlUtil.ReadHtml(Assets).Replace("#body#", content).Replace("#title#", kbArticles.Title).Replace("#author#", "作者:" + kbArticles.Author).Replace("#date#", "发布日期:" + kbArticles.DateAdded.ToString("yyyy年MM月dd日 HH:mm")); wb_content.LoadDataWithBaseURL("file:///android_asset/", content, "text/html", "utf-8", null); callBack(); } else { AlertUtil.ToastShort(this, result.Message); callBack(); } } catch (Exception ex) { AlertUtil.ToastShort(this, ex.Message); MobclickAgent.ReportError(this, ex.ToString()); callBack(); } }
async void AndroidEnvironment_UnhandledExceptionRaiser(object sender, RaiseThrowableEventArgs ex) { await Task.Run(() => { Looper.Prepare(); Toast.MakeText(this, Resources.GetString(Resource.String.search), ToastLength.Long).Show(); Looper.Loop(); }); System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("生产厂商\n"); sb.Append(Build.Manufacturer).Append("\n\n"); sb.Append("手机型号\n"); sb.Append(Build.Model).Append("\n\n"); sb.Append("系统版本\n"); sb.Append(Build.VERSION.Release).Append("\n\n"); sb.Append("异常时间\n"); sb.Append(DateTime.Now.ToString()).Append("\n\n"); sb.Append("异常信息\n"); sb.Append(ex.Exception).Append("\n"); sb.Append(ex.Exception.Message).Append("\n"); sb.Append(ex.Exception.StackTrace).Append("\n\n"); MobclickAgent.ReportError(this, sb.ToString()); System.Threading.Thread.Sleep(2000); Android.OS.Process.KillProcess(Android.OS.Process.MyPid()); Java.Lang.JavaSystem.Exit(1); }
async void GetClientStatus(int id) { try { status = await SQLiteUtil.SelectStatus(id); if (status != null) { tv_userDisplayName.Text = status.UserDisplayName; tv_dateAdded.Text = status.DateAdded.ToCommonString(); tv_content.Text = status.Content; if (!status.UserIconUrl.Substring(status.UserIconUrl.Length - 4, 4).Contains(".png")) { iv_userIcon.SetImageResource(Resource.Drawable.noavatar); } else { ImageLoader.Instance.DisplayImage(status.UserIconUrl, iv_userIcon, options); } } } catch (Exception ex) { MobclickAgent.ReportError(this, ex.ToString()); } }
async void GetArticleContent(Action successCallBack) { try { var result = await HttpClient.ArticleService.GetArticle(AccessTokenUtil.GetToken(this), ID); if (result.Success) { string content = result.Data; content = content.ReplaceHtml().Trim('"'); content = HtmlUtil.ReadHtml(Assets).Replace("#body#", content).Replace("#title#", "").Replace("#author#", "").Replace("#date#", ""); wb_content.LoadDataWithBaseURL("file:///android_asset/", content, "text/html", "utf-8", null); firstImgSrc = HtmlUtil.GetHtmlFirstImgUrl(content); successCallBack(); } else { AlertUtil.ToastShort(this, result.Message); } } catch (Exception ex) { MobclickAgent.ReportError(this, ex.ToString()); AlertUtil.ToastShort(this, ex.Message); } }
public override bool ShouldOverrideUrlLoading(WebView view, string url) { if (url.IndexOf(Constact.Callback) > -1) { Uri uri = new Uri(url.Replace("#", "?")); var query = uri.Query.TrimStart('?').Split('&'); foreach (var item in query) { var q = item.Split('='); if (q[0] == "code") { var code = q[1]; System.Diagnostics.Debug.Write(code); Token token = AccessTokenUtil.GetToken(context); AuthorizationRequest.Authorization_Code(token, code, (userToken) => { System.Diagnostics.Debug.Write(userToken.access_token); UserTokenUtil.SaveToken(userToken, context); // ActivityCompat.FinishAfterTransition(context); context.StartActivity(new Intent(context, typeof(MainActivity))); MobclickAgent.OnProfileSignIn(code); }, error => { MobclickAgent.ReportError(context, "µÇ¼ʧ°Ü" + error); System.Diagnostics.Debug.Write(error); }); } } // view.stoploading(); } return(base.ShouldOverrideUrlLoading(view, url)); }
private async Task <List <ArticleCommentModel> > listArticleCommentServer() { try { var token = UserTokenUtil.GetToken(this); var result = await ArticleService.ListArticleComment(token, blogApp, postId, pageIndex); if (result.Success) { _swipeRefreshLayout.Refreshing = false; await SQLiteUtil.UpdateArticlecommentList(result.Data); return(result.Data); } else { return(null); } } catch (Exception ex) { MobclickAgent.ReportError(this, ex.ToString()); System.Diagnostics.Debug.Write(ex.ToString()); return(null); } }
/// <summary> /// 保存错误信息到文件中 /// </summary> /// <param name="ex"></param> private void SaveCrashInfo2File(Throwable ex) { var sb = new System.Text.StringBuilder(); foreach (var(key, value) in infos) { sb.AppendLine($"{key} = {value}"); } using var writer = new StringWriter(); using var printWriter = new PrintWriter(writer); ex.PrintStackTrace(printWriter); var cause = ex.Cause; while (cause != null) { cause.PrintStackTrace(printWriter); cause = cause.Cause; } var result = writer.ToString(); sb.AppendLine(result); LoggerFactory.Current.Create().LogError(sb.ToString()); MobclickAgent.ReportError(_context, sb.ToString()); }
public override async void OnViewCreated(View view, Bundle savedInstanceState) { base.OnViewCreated(view, savedInstanceState); try { this.HasOptionsMenu = true; swipeRefreshLayout = view.FindViewById <SwipeRefreshLayout>(Resource.Id.swipeRefreshLayout); swipeRefreshLayout.SetColorSchemeResources(Resource.Color.primary); swipeRefreshLayout.SetOnRefreshListener(this); recyclerView = view.FindViewById <RecyclerView>(Resource.Id.recyclerView); var manager = new LinearLayoutManager(this.Activity); recyclerView.SetLayoutManager(manager); adapter = new StatusAdapter(); adapter.SetOnLoadMoreListener(this); adapter.OnDeleteClickListener = this; adapter.User = await SQLiteUtils.Instance().QueryUser(); recyclerView.SetAdapter(adapter); nologinView = this.Activity.LayoutInflater.Inflate(Resource.Layout.nologin_view, (ViewGroup)recyclerView.Parent, false); nologinView.Click += delegate(object sender, EventArgs e) { StartActivityForResult(new Intent(this.Activity, typeof(AuthorizeActivity)), (int)RequestCode.LoginCode); }; notDataView = this.Activity.LayoutInflater.Inflate(Resource.Layout.empty_view, (ViewGroup)recyclerView.Parent, false); notDataView.Click += delegate(object sender, EventArgs e) { OnRefresh(); }; errorView = this.Activity.LayoutInflater.Inflate(Resource.Layout.error_view, (ViewGroup)recyclerView.Parent, false); errorView.Click += delegate(object sender, EventArgs e) { OnRefresh(); }; recyclerView.Post(async() => { if (position == 0) { await statusesPresenter.GetClientStatus(); } else if (!LoginUtils.Instance(this.Activity).GetLoginStatus()) { recyclerView.Post(() => { adapter.SetEmptyView(nologinView); }); } }); } catch (Exception ex) { MobclickAgent.ReportError(Context, ex.Message + ex.StackTrace); } }
public async Task <ResultMessage> GetAsyn(string url) { Request request = new Request.Builder().Url(url).Build(); Response response = await okHttpClient.NewCall(request).ExecuteAsync(); var body = await response.Body().StringAsync(); var code = response.Code(); switch (code) { case (int)System.Net.HttpStatusCode.OK: return(new ResultMessage() { IsError = false, Message = body }); case (int)System.Net.HttpStatusCode.NotFound: MobclickAgent.ReportError(Context, body); return(new ResultMessage() { IsError = true, Message = "404 NotFound" }); case (int)System.Net.HttpStatusCode.Unauthorized: MobclickAgent.ReportError(Context, body); return(new ResultMessage() { IsError = true, Message = "401 Unauthorized" }); case (int)System.Net.HttpStatusCode.InternalServerError: MobclickAgent.ReportError(Context, body); return(new ResultMessage() { IsError = true, Message = "500 InternalServerError" }); case (int)System.Net.HttpStatusCode.BadGateway: MobclickAgent.ReportError(Context, body); return(new ResultMessage() { IsError = true, Message = "502 BadGateway" }); default: MobclickAgent.ReportError(Context, body); return(new ResultMessage() { IsError = true, Message = "网络链接不可用 ,请稍后再试" }); } }
public override bool ShouldOverrideUrlLoading(WebView view, string url) { try { Intent intent = new Intent(Intent.ActionView); intent.SetData(Android.Net.Uri.Parse(url)); context.StartActivity(intent); } catch (Exception ex) { MobclickAgent.ReportError(context, ex.Message); Toast.MakeText(context, "系统中没有安装浏览器客户端", ToastLength.Short).Show(); } return(true); }
async void GetClientQuestion(int id) { try { bool isSearch = Intent.GetBooleanExtra("issearch", false); if (!isSearch) { question = await SQLiteUtil.SelectQuestion(id); } BindView(); } catch (Exception ex) { MobclickAgent.ReportError(this, ex.ToString()); } }
private async Task listSearchService(Action <List <ZzkDocumentViewModel> > successCallBack) { var result = await ZzkService.List(UserTokenUtil.GetToken(this), pageIndex, category, keyword); if (result.Success) { try { successCallBack(result.Data); } catch (Exception ex) { MobclickAgent.ReportError(this, ex.ToString()); System.Diagnostics.Debug.Write(ex.ToString()); } } }
async void GetServerQuestion() { try { var result = await QuestionService.GetQuestionDetail(AccessTokenUtil.GetToken(this), questionId); if (result.Success) { question = result.Data; BindView(); } } catch (Exception ex) { MobclickAgent.ReportError(this, ex.ToString()); } }
/**************** * * 发起添加群流程。群号:xamarin android,C#,Web前端(371026625) 的 key 为: Q90lFEYkStricLdyCyJQMzJJq_5bo7gb * 调用 joinQQGroup(Q90lFEYkStricLdyCyJQMzJJq_5bo7gb) 即可发起手Q客户端申请加群 xamarin android,C#,Web前端(371026625) * * @param key 由官网生成的key * @return 返回true表示呼起手Q成功,返回fals表示呼起失败 ******************/ public bool joinQQGroup(string key) { Intent intent = new Intent(); intent.SetData(Android.Net.Uri.Parse("mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26k%3D" + key)); // 此Flag可根据具体产品需要自定义,如设置,则在加群界面按返回,返回手Q主界面,不设置,按返回会返回到呼起产品界面 //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) try { StartActivity(intent); return(true); } catch (Exception ex) { MobclickAgent.ReportError(this, ex.ToString()); System.Diagnostics.Debug.Write(ex.ToString()); // 未安装手Q或安装的版本不支持 return(false); } }
async void GetNewsContent(Action callBack) { try { if (string.IsNullOrEmpty(news.Body)) { var result = await HttpClient.NewsService.GetNewsDetail(AccessTokenUtil.GetToken(this), ID); if (result.Success) { news.Body = result.Data; await SQLiteUtil.UpdateNews(news); firstImgUrl = HtmlUtil.GetHtmlFirstImgUrl(news.Body); news.Body = news.Body.ReplaceHtml().Trim('"'); string content = HtmlUtil.ReadHtml(Assets).Replace("#body#", news.Body).Replace("#title#", news.Title).Replace("#author#", "").Replace("#date#", "发布日期:" + news.DateAdded.ToString("yyyy年MM月dd日 HH:mm")); wb_content.LoadDataWithBaseURL("file:///android_asset/", content, "text/html", "utf-8", null); callBack(); } else { AlertUtil.ToastShort(this, result.Message); callBack(); } } else { news.Body = news.Body.ReplaceHtml().Trim('"'); string content = HtmlUtil.ReadHtml(Assets).Replace("#body#", news.Body).Replace("#title#", news.Title).Replace("#author#", "").Replace("#date#", "发布日期:" + news.DateAdded.ToString("yyyy年MM月dd日 HH:mm")); wb_content.LoadDataWithBaseURL("file:///android_asset/", content, "text/html", "utf-8", null); firstImgUrl = HtmlUtil.GetHtmlFirstImgUrl(news.Body); callBack(); } } catch (Exception ex) { AlertUtil.ToastShort(this, ex.ToString()); callBack(); MobclickAgent.ReportError(this, ex.ToString()); } }
private async Task <List <BookmarksModel> > listBookmarkServer() { var result = await BookmarksService.List(UserTokenUtil.GetToken(this), Constact.PageSize, pageIndex); if (result.Success) { _swipeRefreshLayout.Refreshing = false; //bookMarkList = result.Data; try { await SQLiteUtil.UpdateBookMarkList(result.Data); return(result.Data); } catch (Exception ex) { MobclickAgent.ReportError(this, ex.ToString()); System.Diagnostics.Debug.Write(ex.ToString()); return(null); } } return(null); }
public void Onclick(SnsPlatform snsPlatform, SHARE_MEDIA media) { if (snsPlatform.MShowWord.Equals("umeng_sharebutton_copy")) { try { Intent intent = new Intent(Intent.ActionView); intent.SetData(Android.Net.Uri.Parse(umWeb.ToUrl())); context.StartActivity(intent); } catch (System.Exception ex) { MobclickAgent.ReportError(context, ex.Message); Toast.MakeText(context, "很抱歉,浏览器打开失败", ToastLength.Short).Show(); } } else { new ShareAction(context).WithMedia(umWeb) .SetPlatform(media) .SetCallback(this) .Share(); } }
protected override async void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); blogApp = Intent.GetStringExtra("blogApp"); postId = Intent.GetIntExtra("postId", 0); SetToolBarNavBack(); StatusBarUtil.SetColorStatusBars(this); SetToolBarTitle(Resources.GetString(Resource.String.comment)); //显示图片配置 options = new DisplayImageOptions.Builder() .ShowImageForEmptyUri(Resource.Drawable.icon_yuanyou) .ShowImageOnFail(Resource.Drawable.icon_yuanyou) .ShowImageOnLoading(Resource.Drawable.icon_user) .CacheInMemory(true) .BitmapConfig(Bitmap.Config.Rgb565) .CacheOnDisk(true) // .Displayer(new DisplayerImageCircle(20)) .Build(); edit_content = FindViewById <EditText>(Resource.Id.edit_content); btn_submit = FindViewById <Button>(Resource.Id.btn_submit); //btn_submit.enabvle btn_submit.Click += (s, e) => { Add(); }; edit_content.TextChanged += (s, e) => { string temp = edit_content.Text.TrimStart().TrimEnd(); if (!string.IsNullOrEmpty(temp)) { btn_submit.Enabled = true; if (atUserName != null && atUserName.Length > 0 && temp.Contains(atUserName)) { isAt = true; } else { isAt = false; } } else { btn_submit.Enabled = false; } }; _swipeRefreshLayout = FindViewById <SwipeRefreshLayout>(Resource.Id.swipeRefreshLayout); _swipeRefreshLayout.SetColorSchemeResources(Resource.Color.primary); _swipeRefreshLayout.SetOnRefreshListener(this); _swipeRefreshLayout.Post(() => { _swipeRefreshLayout.Refreshing = true; }); _swipeRefreshLayout.PostDelayed(() => { System.Diagnostics.Debug.Write("PostDelayed方法已经完成"); _swipeRefreshLayout.Refreshing = false; }, 3000); _recyclerView = FindViewById <RecyclerView>(Resource.Id.recyclerView); _recyclerView.SetLayoutManager(new Android.Support.V7.Widget.LinearLayoutManager(this)); _recyclerView.AddItemDecoration(new RecyclerViewDecoration(this, (int)Orientation.Vertical)); try { commentList = await listArticleCommentServer(); if (commentList != null) { initRecycler(); } } catch (Exception ex) { MobclickAgent.ReportError(this, ex.ToString()); System.Diagnostics.Debug.Write(ex.ToString()); } }
protected override void ConvertAsync(RecyclerView.ViewHolder holder, StatusModel model) { var baseHolder = holder as BaseAdapter.BaseViewHolder; var linearLayout = (baseHolder.GetView(Resource.Id.linearLayout) as LinearLayout); linearLayout.Tag = model.Id; linearLayout.SetOnClickListener(this); var txtDesc = (baseHolder.GetView(Resource.Id.txtDesc) as TextView); var txtParentCommentContent = (baseHolder.GetView(Resource.Id.txtParentCommentContent) as TextView); (baseHolder.GetView(Resource.Id.txtUserName) as TextView).Text = HtmlUtils.GetHtml(model.UserDisplayName).ToString(); (baseHolder.GetView(Resource.Id.txtPostdate) as TextView).Text = DateTimeUtils.CommonTime(Convert.ToDateTime(model.DateAdded)); var commentCount = (baseHolder.GetView(Resource.Id.txtCommentCount) as TextView); if (model.CommentCount > 0) { commentCount.Text = " " + model.CommentCount; } else { commentCount.Text = ""; } var content = (baseHolder.GetView(Resource.Id.txtContent) as TextView); (baseHolder.GetView(Resource.Id.progressBar) as ProgressBar).Visibility = ViewStates.Gone; var imgUserUrl = (baseHolder.GetView(Resource.Id.imgUserUrl) as ImageView); var imgPrivate = (baseHolder.GetView(Resource.Id.imgPrivate) as ImageView); var imgDelete = (baseHolder.GetView(Resource.Id.imgDelete) as ImageButton); imgDelete.Tag = model.Id; imgDelete.SetOnClickListener(this); if (User != null && User.UserId == model.UserGuid && model.Id > 0) { imgDelete.Visibility = ViewStates.Visible; } else { imgDelete.Visibility = ViewStates.Gone; } if (model.StatusId > 0) { commentCount.Visibility = ViewStates.Gone; txtDesc.Text = "回复了您的评论"; txtParentCommentContent.Visibility = ViewStates.Visible; txtParentCommentContent.SetText(HtmlUtils.GetHtml(model.ParentCommentContent), TextView.BufferType.Spannable); } else { commentCount.Visibility = ViewStates.Visible; txtParentCommentContent.Visibility = ViewStates.Gone; txtDesc.Text = "发布了"; imgDelete.Tag = model.Id; linearLayout.Tag = model.Id; } if (model.IsPrivate) { imgPrivate.Visibility = ViewStates.Visible; try { Picasso.With(context) .Load(Resource.Drawable.isPrivate) .Into(imgPrivate); } catch { } } else { imgPrivate.Visibility = ViewStates.Gone; } if (model.IsLucky) { var Content = "\u3000" + model.Content + " "; var spanText = new SpannableString(HtmlUtils.GetHtml(Content)); try { var imageSpan = new CenteredImageSpan(context, Resource.Drawable.luckystar); spanText.SetSpan(imageSpan, spanText.Length() - 1, spanText.Length(), SpanTypes.InclusiveExclusive); } catch (Exception ex) { MobclickAgent.ReportError(context, ex.Message); spanText.SetSpan(context, spanText.Length() - 1, spanText.Length(), SpanTypes.InclusiveExclusive); } content.SetText(spanText, TextView.BufferType.Spannable); } else { content.SetText(HtmlUtils.GetHtml(model.Content), TextView.BufferType.Spannable); } try { Picasso.With(context) .Load(model.UserIconUrl) .Placeholder(Resource.Drawable.placeholder) .Error(Resource.Drawable.placeholder) .Transform(new CircleTransform()) .Into(imgUserUrl); } catch { } }