public static object shareToWechat(ShareType type, string title, string description, string linkUrl, string imageUrl) { return(new ThunkAction <AppState>((dispatcher, getState) => { return ShareApi.FetchImageBytes(imageUrl) .Then(imageBytes => { var encodeBytes = Convert.ToBase64String(imageBytes); if (type == ShareType.friends) { WechatPlugin.instance().shareToFriend(title, description, linkUrl, encodeBytes); } else if (type == ShareType.moments) { WechatPlugin.instance().shareToTimeline(title, description, linkUrl, encodeBytes); } }).Catch(error => { if (type == ShareType.friends) { WechatPlugin.instance().shareToFriend(title, description, linkUrl, null); } else if (type == ShareType.moments) { WechatPlugin.instance().shareToTimeline(title, description, linkUrl, null); } }); })); }
Widget _buildWechatButton(BuildContext context) { if (!WechatPlugin.instance().inInstalled()) { return(new Container()); } WechatPlugin.instance().context = context; return(new CustomButton( onPressed: () => { WechatPlugin.instance(code => { CustomDialogUtils.showCustomDialog( child: new CustomLoadingDialog() ); this.actionModel.loginByWechatAction(code).Then(() => { CustomDialogUtils.hiddenCustomDialog(); if (this.anonymous) { LoginScreen.navigator.pushReplacementNamed(LoginNavigatorRoutes .WechatBindUnity); } else { this.actionModel.mainRouterPop(); } }) .Catch(_ => CustomDialogUtils.hiddenCustomDialog()); }) .login(Guid.NewGuid().ToString()); }, padding: EdgeInsets.zero, child: new Container( height: 48, decoration: new BoxDecoration( CColors.PrimaryBlue, borderRadius: BorderRadius.all(24) ), child: new Row( mainAxisAlignment: MainAxisAlignment.center, children: new List <Widget> { new Icon( Icons.WechatIcon, size: 24, color: CColors.White ), new Container(width: 8), new Text( "使用微信账号登录", maxLines: 1, style: CTextStyle.PLargeWhite ) } ) ) )); }
Widget _buildWeChatButton(BuildContext context) { if (!WechatPlugin.instance().isInstalled()) { return(new Container()); } WechatPlugin.instance().context = context; return(new CustomButton( onPressed: () => { WechatPlugin.instance(code => { CustomDialogUtils.showCustomDialog(child: new CustomLoadingDialog()); this.widget.actionModel.loginByWechatAction(arg: code); }) .login(Guid.NewGuid().ToString()); }, padding: EdgeInsets.zero, child: new Container( height: 48, decoration: new BoxDecoration( color: CColors.PrimaryBlue, borderRadius: BorderRadius.all(24) ), child: new Row( mainAxisAlignment: MainAxisAlignment.center, children: new List <Widget> { new Icon( icon: Icons.WechatIcon, size: 24, color: CColors.White ), new Container(width: 8), new Text( "使用微信账号登录", maxLines: 1, style: CTextStyle.PLargeWhite ) } ) ) )); }
List <Widget> _buildShareItems() { var shareItems = new List <Widget>(); if (WechatPlugin.instance().inInstalled()) { shareItems.Add( _buildShareItem( Icons.WechatIcon, "微信好友", CColors.White, CColors.WechatGreen, () => this.onPressed(ShareType.friends) ) ); shareItems.Add( _buildShareItem( Icons.WechatMoment, "朋友圈", CColors.White, CColors.WechatGreen, () => this.onPressed(ShareType.moments) ) ); } shareItems.Add( _buildShareItem( Icons.insert_link, "复制链接", CColors.White, CColors.PrimaryBlue, () => this.onPressed(ShareType.clipBoard) ) ); return(shareItems); }
Widget _buildEventBottom(IEvent eventObj, EventType eventType, EventStatus eventStatus, bool isLoggedIn, BuildContext context) { if (!WechatPlugin.instance().isInstalled() || eventType == EventType.offline) { return(new Container()); } return(new Container( height: 56 + CCommonUtils.getSafeAreaBottomPadding(context: context), padding: EdgeInsets.only(16, 8, 16, 8 + CCommonUtils.getSafeAreaBottomPadding(context: context)), decoration: new BoxDecoration( color: CColors.White, border: new Border(new BorderSide(color: CColors.Separator)) ), child: new CustomButton( onPressed: () => { CustomDialogUtils.showCustomDialog( barrierColor: Color.fromRGBO(0, 0, 0, 0.5f), child: new CustomAlertDialog( "即将前往微信小程序开始观看", null, new List <Widget> { new CustomButton( child: new Text( "稍后再说", style: new TextStyle( height: 1.33f, fontSize: 16, fontFamily: "Roboto-Regular", color: new Color(0xFF959595) ), textAlign: TextAlign.center ), onPressed: CustomDialogUtils.hiddenCustomDialog ), new CustomButton( child: new Text( "立即前往", style: CTextStyle.PLargeBlue, textAlign: TextAlign.center ), onPressed: () => { CustomDialogUtils.hiddenCustomDialog(); WechatPlugin.instance().context = this.context; WechatPlugin.instance().currentEventId = eventObj.id; var path = CStringUtils.CreateMiniPath(id: eventObj.id, title: eventObj.title); if (path.isNotEmpty()) { WechatPlugin.instance().toOpenMiNi(path); } } ) } ) ); }, padding: EdgeInsets.zero, child: new Container( decoration: new BoxDecoration( color: CColors.PrimaryBlue, borderRadius: BorderRadius.all(4) ), child: new Row( mainAxisAlignment: MainAxisAlignment.center, children: new List <Widget> { new Text( "进入微信小程序", style: CTextStyle.PLargeMediumWhite.merge(new TextStyle(height: 1)) ) } ) ) ) )); }
Widget _buildEventBottom(IEvent eventObj, EventType eventType, EventStatus eventStatus, bool isLoggedIn) { if (!WechatPlugin.instance().isInstalled() || eventType == EventType.offline) { return(new Container()); } return(new Container( height: 56 + this._bottomPadding, padding: EdgeInsets.only(16, 8, 16, 8 + this._bottomPadding), decoration: new BoxDecoration( color: CColors.White, border: new Border(new BorderSide(color: CColors.Separator)) ), child: new CustomButton( onPressed: () => { CustomDialogUtils.showCustomDialog( barrierColor: Color.fromRGBO(0, 0, 0, 0.5f), child: new CustomAlertDialog( "即将前往微信小程序\n开始观看", null, new List <Widget> { new CustomButton( child: new Text( "稍后再说", style: new TextStyle( height: 1.33f, fontSize: 16, fontFamily: "Roboto-Regular", color: new Color(0xFF959595) ), textAlign: TextAlign.center ), onPressed: CustomDialogUtils.hiddenCustomDialog ), new CustomButton( child: new Text( "立即前往", style: CTextStyle.PLargeBlue, textAlign: TextAlign.center ), onPressed: () => { CustomDialogUtils.hiddenCustomDialog(); WechatPlugin.instance().context = this.context; WechatPlugin.instance().currentEventId = eventObj.id; var path = CStringUtils.CreateMiniPath(id: eventObj.id, title: eventObj.title); if (path.isNotEmpty()) { WechatPlugin.instance().toOpenMiNi(path); } } ) } ) ); }, padding: EdgeInsets.zero, child: new Container( decoration: new BoxDecoration( color: CColors.PrimaryBlue, borderRadius: BorderRadius.all(4) ), child: new Row( mainAxisAlignment: MainAxisAlignment.center, children: new List <Widget> { new Text( "进入微信小程序", style: CTextStyle.PLargeMediumWhite.merge(new TextStyle(height: 1)) ) } ) ) ) )); // var onlineCount = eventObj.onlineMemberCount; // var recordWatchCount = eventObj.recordWatchCount; // var userIsCheckedIn = eventObj.userIsCheckedIn; // var title = ""; // var subTitle = ""; // if (eventStatus == EventStatus.live) { // title = "正在直播"; // subTitle = $"{onlineCount}人正在观看"; // } // // if (eventStatus == EventStatus.past) { // title = "回放"; // subTitle = $"{recordWatchCount}次观看"; // } // // if (eventStatus == EventStatus.future || eventStatus == EventStatus.countDown) { // var begin = eventObj.begin != null ? eventObj.begin : new TimeMap(); // var startTime = begin.startTime; // if (startTime.isNotEmpty()) { // subTitle = DateConvert.GetFutureTimeFromNow(startTime); // } // // title = "距离开始还有"; // } // // var backgroundColor = CColors.PrimaryBlue; // var joinInText = "立即加入"; // var textStyle = CTextStyle.PLargeMediumWhite; // // Widget child = new Text( // joinInText, // style: textStyle // ); // // if (this.widget.viewModel.joinEventLoading) { // child = new CustomActivityIndicator( // loadingColor: LoadingColor.white // ); // } // // return new Container( // height: 64, // padding: EdgeInsets.symmetric(horizontal: 16), // margin: EdgeInsets.only(bottom: MediaQuery.of(this.context).padding.bottom), // decoration: new BoxDecoration( // CColors.White, // border: new Border(new BorderSide(CColors.Separator)) // ), // child: new Row( // mainAxisAlignment: MainAxisAlignment.spaceBetween, // children: new List<Widget> { // new Column( // mainAxisAlignment: MainAxisAlignment.center, // crossAxisAlignment: CrossAxisAlignment.start, // children: new List<Widget> { // new Text( // title, // style: CTextStyle.PSmallBody4 // ), // new Container(height: 2), // new Text( // subTitle, // style: CTextStyle.H5Body // ) // } // ), // new CustomButton( // onPressed: () => { // if (this.widget.viewModel.joinEventLoading) { // return; // } // // if (!this.widget.viewModel.isLoggedIn) { // this.widget.actionModel.pushToLogin(); // } // else { // if (!WechatPlugin.instance().isInstalled()) { // CustomToast.show(new CustomToastItem(this.context, "需要安装微信才能打开小程序", // gravity: ToastGravity.center)); // return; // } // // CustomDialogUtils.showCustomDialog( // barrierColor: Color.fromRGBO(0, 0, 0, 0.5f), // child: new CustomAlertDialog( // "即将前往微信小程序\n开始观看", // null, // new List<Widget> { // new CustomButton( // child: new Text( // "稍后再说", // style: new TextStyle( // height: 1.33f, // fontSize: 16, // fontFamily: "Roboto-Regular", // color: new Color(0xFF959595) // ), // textAlign: TextAlign.center // ), // onPressed: () => { CustomDialogUtils.hiddenCustomDialog(); } // ), // new CustomButton( // child: new Text( // "立即前往", // style: CTextStyle.PLargeBlue, // textAlign: TextAlign.center // ), // onPressed: () => { // CustomDialogUtils.hiddenCustomDialog(); // WechatPlugin.instance().context = this.context; // WechatPlugin.instance().currentEventId = eventObj.id; // var path = // $"pages/Detail/Detail?id={eventObj.id}&title={eventObj.title}&app=true"; // WechatPlugin.instance().toOpenMiNi(path); // } // ) // } // ) // ); // } // }, // child: new Container( // width: 96, // height: 40, // decoration: new BoxDecoration( // backgroundColor, // borderRadius: BorderRadius.all(4) // ), // alignment: Alignment.center, // child: new Row( // mainAxisAlignment: MainAxisAlignment.center, // children: new List<Widget> { // child // } // ) // ) // ) // } // ) // ); }