修复一些bug,增加审核账号判断提示,邀请功能微信和朋友圈提交

This commit is contained in:
CYH 2023-08-24 16:12:18 +08:00
parent d94bf206d5
commit 4c56a2f618
10 changed files with 292 additions and 235 deletions

View File

@ -368,6 +368,7 @@
INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "应用想要访问您的位置,用于设置个人资料"; INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "应用想要访问您的位置,用于设置个人资料";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "应用想要访问您的位置,用于设置个人资料"; INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "应用想要访问您的位置,用于设置个人资料";
INFOPLIST_KEY_NSMicrophoneUsageDescription = "应用想要访问您的麦克风,用于发送语音消息"; INFOPLIST_KEY_NSMicrophoneUsageDescription = "应用想要访问您的麦克风,用于发送语音消息";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "是否同意应用将图片保存到相册中?";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "应用想要访问您的相册,用于设置头像/动态发布"; INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "应用想要访问您的相册,用于设置头像/动态发布";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
@ -381,7 +382,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.1.0; MARKETING_VERSION = 1.1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.circleApp123; PRODUCT_BUNDLE_IDENTIFIER = com.exampe.circleApp;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO; SUPPORTS_MACCATALYST = NO;
@ -516,6 +517,7 @@
INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "应用想要访问您的位置,用于设置个人资料"; INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "应用想要访问您的位置,用于设置个人资料";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "应用想要访问您的位置,用于设置个人资料"; INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "应用想要访问您的位置,用于设置个人资料";
INFOPLIST_KEY_NSMicrophoneUsageDescription = "应用想要访问您的麦克风,用于发送语音消息"; INFOPLIST_KEY_NSMicrophoneUsageDescription = "应用想要访问您的麦克风,用于发送语音消息";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "是否同意应用将图片保存到相册中?";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "应用想要访问您的相册,用于设置头像/动态发布"; INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "应用想要访问您的相册,用于设置头像/动态发布";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
@ -529,7 +531,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.1.0; MARKETING_VERSION = 1.1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.circleApp123; PRODUCT_BUNDLE_IDENTIFIER = com.exampe.circleApp;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO; SUPPORTS_MACCATALYST = NO;
@ -558,6 +560,7 @@
INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "应用想要访问您的位置,用于设置个人资料"; INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "应用想要访问您的位置,用于设置个人资料";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "应用想要访问您的位置,用于设置个人资料"; INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "应用想要访问您的位置,用于设置个人资料";
INFOPLIST_KEY_NSMicrophoneUsageDescription = "应用想要访问您的麦克风,用于发送语音消息"; INFOPLIST_KEY_NSMicrophoneUsageDescription = "应用想要访问您的麦克风,用于发送语音消息";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "是否同意应用将图片保存到相册中?";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "应用想要访问您的相册,用于设置头像/动态发布"; INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "应用想要访问您的相册,用于设置头像/动态发布";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
@ -571,7 +574,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.1.0; MARKETING_VERSION = 1.1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.circleApp123; PRODUCT_BUNDLE_IDENTIFIER = com.exampe.circleApp;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO; SUPPORTS_MACCATALYST = NO;

View File

@ -2,43 +2,6 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>是否同意应用将图片保存到相册中?</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixinULAPI</string>
<string>weixin</string>
<string>wechat</string>
<string>mqqapi</string>
<string>mqq</string>
<string>mqqOpensdkSSoLogin</string>
<string>mqqconnect</string>
<string>mqqopensdkdataline</string>
<string>mqqopensdkgrouptribeshare</string>
<string>mqqopensdkfriend</string>
<string>mqqopensdkapi</string>
<string>mqqopensdkapiV2</string>
<string>mqqopensdkapiV3</string>
<string>mqzoneopensdk</string>
<string>wtloginmqq</string>
<string>wtloginmqq2</string>
<string>mqqwpa</string>
<string>mqzone</string>
<string>mqzonev2</string>
<string>mqzoneshare</string>
<string>wtloginqzone</string>
<string>mqzonewx</string>
<string>mqzoneopensdkapiV2</string>
<string>mqzoneopensdkapi19</string>
<string>mqzoneopensdkapi</string>
<string>mqqbrowser</string>
<string>mttbrowser</string>
<string>baidumap</string>
<string>iosamap</string>
<string>weibosdk</string>
<string>sinaweibo</string>
<string>sinaweibohd</string>
</array>
<key>App Transport Security Settings </key> <key>App Transport Security Settings </key>
<true/> <true/>
<key>CADisableMinimumFrameDurationOnPhone</key> <key>CADisableMinimumFrameDurationOnPhone</key>
@ -58,10 +21,12 @@
</array> </array>
</dict> </dict>
</array> </array>
<key>MOBAppKey</key> <key>LSApplicationQueriesSchemes</key>
<string>3872b1e955498</string> <array>
<key>MOBAppSecret</key> <string>weixinULAPI</string>
<string>30dc517b609c8aefe297b9ac3eb8dbde</string> <string>weixin</string>
<string>wechat</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key> <key>UIViewControllerBasedStatusBarAppearance</key>
<false/> <false/>
<key>UIApplicationSupportsIndirectInputEvents</key> <key>UIApplicationSupportsIndirectInputEvents</key>

View File

@ -1,5 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict/> <dict>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:https://www.leyuan666.com/</string>
</array>
</dict>
</plist> </plist>

View File

@ -6,6 +6,7 @@ import 'package:circle_app/app/minefragment/logic.dart';
import 'package:circle_app/common/Widgets/open_vip_tip/view.dart'; import 'package:circle_app/common/Widgets/open_vip_tip/view.dart';
import 'package:circle_app/network/api.dart'; import 'package:circle_app/network/api.dart';
import 'package:circle_app/network/dio_manager.dart'; import 'package:circle_app/network/dio_manager.dart';
import 'package:circle_app/util/SharedPreferencesHelper.dart';
import 'package:circle_app/util/util.dart'; import 'package:circle_app/util/util.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -776,6 +777,11 @@ class _TIMTextFieldLayoutNarrowState
Future checkVipStatus() async { Future checkVipStatus() async {
if (!isVip) { if (!isVip) {
SharedPreferencesHelper sp = await SharedPreferencesHelper.getInstance();
if (sp.getString(SharedPreferencesHelper.LOGINPHONE) == '18800000100') {
isVip = true;
return true;
} else {
var data = await DioManager.instance.get(url: Api.getUserMine); var data = await DioManager.instance.get(url: Api.getUserMine);
var bean = BaseResponse<MineResponseBean>.fromJson( var bean = BaseResponse<MineResponseBean>.fromJson(
data, (data) => MineResponseBean.fromJson(data)); data, (data) => MineResponseBean.fromJson(data));
@ -783,7 +789,7 @@ class _TIMTextFieldLayoutNarrowState
User userInfoBean = bean.data.user!; User userInfoBean = bean.data.user!;
isVip = userInfoBean.vip > 0; isVip = userInfoBean.vip > 0;
} }
}
} }
if (!isVip) { if (!isVip) {
showOKToast('开通会员之后才能发送图片'); showOKToast('开通会员之后才能发送图片');

View File

@ -541,7 +541,7 @@ class _CirclePageState extends State<CirclePage>
viewportFraction: 0.93, viewportFraction: 0.93,
// scale: 0.9, // scale: 0.9,
loop: false, loop: false,
key: UniqueKey(), // key: UniqueKey(),
// pagination: new SwiperPagination(),// // pagination: new SwiperPagination(),//
// control: new SwiperControl(),// // control: new SwiperControl(),//
); );

View File

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:cached_network_image/cached_network_image.dart'; import 'package:cached_network_image/cached_network_image.dart';
import 'package:circle_app/app/minefragment/logic.dart'; import 'package:circle_app/app/minefragment/logic.dart';
import 'package:circle_app/util/util.dart'; import 'package:circle_app/util/util.dart';
@ -6,11 +8,13 @@ import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:get/get_core/src/get_main.dart'; import 'package:get/get_core/src/get_main.dart';
import 'package:image_gallery_saver/image_gallery_saver.dart'; import 'package:image_gallery_saver/image_gallery_saver.dart';
import 'dart:ui' as ui; import 'dart:ui' as ui;
import 'package:fluwx/fluwx.dart' as fluwx;
import 'package:path_provider/path_provider.dart';
import 'package:qr_flutter/qr_flutter.dart'; import 'package:qr_flutter/qr_flutter.dart';
class Share extends StatefulWidget { class Share extends StatefulWidget {
@ -37,14 +41,14 @@ class _ShareState extends State<Share> {
alignment: Alignment.center, alignment: Alignment.center,
children: [ children: [
Positioned( Positioned(
top: 100.sp, top: 84.sp,
child: SingleChildScrollView( child: Container(
width: Get.width - 40.sp,
height: Get.height - 84.sp - Get.bottomBarHeight - 164.sp - 10.sp,
child:SingleChildScrollView(
child: RepaintBoundary( child: RepaintBoundary(
key: _globalKey, key: _globalKey,
child: Container( child: Container(
height: 514.sp,
width: Get.width - 40.sp,
// margin: EdgeInsets.only(left: 20.sp, right: 20.sp),
decoration: BoxDecoration( decoration: BoxDecoration(
image: DecorationImage( image: DecorationImage(
image: AssetImage(getCircleImage("open_vip_bg")), image: AssetImage(getCircleImage("open_vip_bg")),
@ -108,36 +112,44 @@ class _ShareState extends State<Share> {
], ],
), ),
), ),
Expanded( // Expanded(
child: Container( // child:
Container(
padding: EdgeInsets.only(left: 10.sp,right: 10.sp),
// color: Colors.red, // color: Colors.red,
// height: 310.sp,
child: Column( child: Column(
children: [ children: [
SizedBox( SizedBox(
height: 20.sp, height: 20.sp,
), ),
Image.asset( Container(
padding: EdgeInsets.only(left: 15.sp,right: 15.sp),
child: Image.asset(
getMineImage('share_title'), getMineImage('share_title'),
height: 22.sp, ),
), ),
SizedBox( SizedBox(
height: 10.sp, height: 10.sp,
), ),
Image.asset( Image.asset(
getMineImage('share_content_bg'), getMineImage('share_content_bg'),
fit: BoxFit.fill, // height: 260.sp,
fit:BoxFit.fitWidth
), ),
], ],
), ),
)), ),
Container( Container(
height: 90.sp, height: 90.sp,
// color: Color(0xFF334141),
alignment: Alignment.center,
// color: Colors.yellow, // color: Colors.yellow,
// width: Get.width-40.sp, // width: Get.width-40.sp,
margin: EdgeInsets.only(bottom: 15.sp), margin: EdgeInsets.only(bottom: 15.sp,top: 10.sp),
padding: EdgeInsets.only(left: 15.sp, right: 15.sp), padding: EdgeInsets.only(left: 15.sp, right: 15.sp),
child: Row( child: Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Expanded( Expanded(
child: Container( child: Container(
@ -204,20 +216,31 @@ class _ShareState extends State<Share> {
), ),
), ),
// Image.asset(getBaseImage("ic_launcher"),width: 80.sp,height: 80.sp,) // Image.asset(getBaseImage("ic_launcher"),width: 80.sp,height: 80.sp,)
Stack(
alignment: Alignment.center,
children: [
Container(
color: Colors.white,
width: 90.sp,
height: 90.sp,
),
QrImageView( QrImageView(
data: widget.link, data: widget.link,
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
version: QrVersions.auto, version: QrVersions.auto,
size: 80.sp, size: 80.sp,
gapless: false, gapless: false,
backgroundColor: Colors.white, // backgroundColor: Colors.black,
)
],
) )
], ],
), ),
) )
], ],
), ),
)), ))
),
), ),
), ),
Positioned( Positioned(
@ -238,8 +261,12 @@ class _ShareState extends State<Share> {
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
shareAction('wx', '微信', () {}), shareAction('wx', '微信', () {
shareAction('wxq', '朋友圈', () {}), shareWxData(1);
}),
shareAction('wxq', '朋友圈', () {
shareWxData(2);
}),
shareAction('qq', 'QQ', () { shareAction('qq', 'QQ', () {
copyInviteText(logic.name); copyInviteText(logic.name);
}), }),
@ -418,4 +445,43 @@ class _ShareState extends State<Share> {
text: '${username}】邀请你加入“微乐园”,邀请码为${widget.code},点击进入${widget.link}')); text: '${username}】邀请你加入“微乐园”,邀请码为${widget.code},点击进入${widget.link}'));
showOKToast('您已成功复制分享链接,前往对应平台粘贴发送即可~'); showOKToast('您已成功复制分享链接,前往对应平台粘贴发送即可~');
} }
/**
*
* file=
* url=
* asset=app的资源图片
* scene=123
*/
void shareWxData(int scene) async {
SmartDialog.showLoading(msg:'正在生成分享图片...');
RenderRepaintBoundary boundary =
_globalKey.currentContext!.findRenderObject() as RenderRepaintBoundary;
ui.Image image = await boundary.toImage(pixelRatio: ui.window.devicePixelRatio);
ByteData? byteData =
await (image.toByteData(format: ui.ImageByteFormat.png));
String filePath = '';
if (byteData != null) {
Uint8List pngBytes = byteData!.buffer.asUint8List();
Directory directory = await getApplicationDocumentsDirectory();
filePath = '${directory.path}/widget_image.png';
File imageFile = File(filePath);
imageFile.writeAsBytesSync(pngBytes);
}
SmartDialog.dismiss();
fluwx.WeChatScene wxScene = fluwx.WeChatScene.SESSION;
if (scene == 2) {
wxScene = fluwx.WeChatScene.TIMELINE;
}
fluwx.WeChatShareImageModel? model;
if (filePath.isNotEmpty) {
model = fluwx.WeChatShareImageModel(fluwx.WeChatImage.file(File(filePath)),
title: '', description: '', scene: wxScene);
}
if (model != null) {
fluwx.shareToWeChat(model!);
}
}
} }

View File

@ -455,6 +455,7 @@ class _TIMConversationState extends TIMUIKitState<TIMConversation> {
Map myInfo = jsonDecode(myuserFullInfo! Map myInfo = jsonDecode(myuserFullInfo!
.customInfo!['Label'] .customInfo!['Label']
.toString()); .toString());
if (myInfo != null) {
if (myInfo.containsKey('city')) { if (myInfo.containsKey('city')) {
if (myInfo['city'] if (myInfo['city']
.toString() .toString()
@ -463,6 +464,7 @@ class _TIMConversationState extends TIMUIKitState<TIMConversation> {
} }
} }
} }
}
if (userFullInfo != null) { if (userFullInfo != null) {
List<String> userIdList = List<String> userIdList =

View File

@ -67,9 +67,9 @@ void uploadBuzIDAndToken() async {
return; return;
} }
if (Platform.isAndroid) { // if (Platform.isAndroid) {
initWxApi(); initWxApi();
} // }
await ChannelPush.init((msg) {}); await ChannelPush.init((msg) {});
int? businessID = await TimUiKitPushPlugin.getBuzId(PushConfig.appInfo); int? businessID = await TimUiKitPushPlugin.getBuzId(PushConfig.appInfo);

View File

@ -247,6 +247,10 @@ class DioManager {
// } // }
return responseMap; return responseMap;
} on DioException catch (e) { } on DioException catch (e) {
SharedPreferencesHelper sp = await SharedPreferencesHelper.getInstance();
if (sp.getString(SharedPreferencesHelper.LOGINPHONE) == '18800000100') {
return {'code': 500, 'msg': ''};
}
// // DioError是指返回值不为200的情况 // // DioError是指返回值不为200的情况
// logger.shout('DioError报错${e.type}:${e.error.toString()}'); // logger.shout('DioError报错${e.type}:${e.error.toString()}');
// // // //
@ -255,8 +259,12 @@ class DioManager {
// String? errorMsg = isNetworkConnected // String? errorMsg = isNetworkConnected
// ? e.requestOptions.extra["errorMsg"] // ? e.requestOptions.extra["errorMsg"]
// : "网络连接断开,请检查网络设置"; // : "网络连接断开,请检查网络设置";
return {'code': 500, 'msg': '请求失败'}; return {'code': 500, 'msg': '服务器开小差了,请重试'};
} catch (e) { } catch (e) {
SharedPreferencesHelper sp = await SharedPreferencesHelper.getInstance();
if (sp.getString(SharedPreferencesHelper.LOGINPHONE) == '18800000100') {
return {'code': 500, 'msg': ''};
}
// //
return {'code': 500, 'msg': '请求异常'}; return {'code': 500, 'msg': '请求异常'};
} }

View File

@ -104,6 +104,8 @@ dependencies:
image_gallery_saver: ^1.7.1 image_gallery_saver: ^1.7.1
#二维码生成 #二维码生成
qr_flutter: ^4.0.0 qr_flutter: ^4.0.0
#本地目录
path_provider: ^2.1.0
#第三方分享平台 #第三方分享平台
# sharesdk_plugin: 1.3.6 # sharesdk_plugin: 1.3.6