修复一些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_NSLocationWhenInUseUsageDescription = "应用想要访问您的位置,用于设置个人资料";
INFOPLIST_KEY_NSMicrophoneUsageDescription = "应用想要访问您的麦克风,用于发送语音消息";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "是否同意应用将图片保存到相册中?";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "应用想要访问您的相册,用于设置头像/动态发布";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
@ -381,7 +382,7 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.circleApp123;
PRODUCT_BUNDLE_IDENTIFIER = com.exampe.circleApp;
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
@ -516,6 +517,7 @@
INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "应用想要访问您的位置,用于设置个人资料";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "应用想要访问您的位置,用于设置个人资料";
INFOPLIST_KEY_NSMicrophoneUsageDescription = "应用想要访问您的麦克风,用于发送语音消息";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "是否同意应用将图片保存到相册中?";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "应用想要访问您的相册,用于设置头像/动态发布";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
@ -529,7 +531,7 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.circleApp123;
PRODUCT_BUNDLE_IDENTIFIER = com.exampe.circleApp;
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
@ -558,6 +560,7 @@
INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "应用想要访问您的位置,用于设置个人资料";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "应用想要访问您的位置,用于设置个人资料";
INFOPLIST_KEY_NSMicrophoneUsageDescription = "应用想要访问您的麦克风,用于发送语音消息";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "是否同意应用将图片保存到相册中?";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "应用想要访问您的相册,用于设置头像/动态发布";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
@ -571,7 +574,7 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.circleApp123;
PRODUCT_BUNDLE_IDENTIFIER = com.exampe.circleApp;
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
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">
<plist version="1.0">
<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>
<true/>
<key>CADisableMinimumFrameDurationOnPhone</key>
@ -58,10 +21,12 @@
</array>
</dict>
</array>
<key>MOBAppKey</key>
<string>3872b1e955498</string>
<key>MOBAppSecret</key>
<string>30dc517b609c8aefe297b9ac3eb8dbde</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixinULAPI</string>
<string>weixin</string>
<string>wechat</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>UIApplicationSupportsIndirectInputEvents</key>

View File

@ -1,5 +1,10 @@
<?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">
<plist version="1.0">
<dict/>
<dict>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:https://www.leyuan666.com/</string>
</array>
</dict>
</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/network/api.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:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -776,6 +777,11 @@ class _TIMTextFieldLayoutNarrowState
Future checkVipStatus() async {
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 bean = BaseResponse<MineResponseBean>.fromJson(
data, (data) => MineResponseBean.fromJson(data));
@ -783,7 +789,7 @@ class _TIMTextFieldLayoutNarrowState
User userInfoBean = bean.data.user!;
isVip = userInfoBean.vip > 0;
}
}
}
if (!isVip) {
showOKToast('开通会员之后才能发送图片');

View File

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

View File

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:circle_app/app/minefragment/logic.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/services.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_core/src/get_main.dart';
import 'package:image_gallery_saver/image_gallery_saver.dart';
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';
class Share extends StatefulWidget {
@ -37,14 +41,14 @@ class _ShareState extends State<Share> {
alignment: Alignment.center,
children: [
Positioned(
top: 100.sp,
top: 84.sp,
child: Container(
width: Get.width - 40.sp,
height: Get.height - 84.sp - Get.bottomBarHeight - 164.sp - 10.sp,
child:SingleChildScrollView(
child: RepaintBoundary(
key: _globalKey,
child: Container(
height: 514.sp,
width: Get.width - 40.sp,
// margin: EdgeInsets.only(left: 20.sp, right: 20.sp),
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(getCircleImage("open_vip_bg")),
@ -108,36 +112,44 @@ class _ShareState extends State<Share> {
],
),
),
Expanded(
child: Container(
// Expanded(
// child:
Container(
padding: EdgeInsets.only(left: 10.sp,right: 10.sp),
// color: Colors.red,
// height: 310.sp,
child: Column(
children: [
SizedBox(
height: 20.sp,
),
Image.asset(
Container(
padding: EdgeInsets.only(left: 15.sp,right: 15.sp),
child: Image.asset(
getMineImage('share_title'),
height: 22.sp,
),
),
SizedBox(
height: 10.sp,
),
Image.asset(
getMineImage('share_content_bg'),
fit: BoxFit.fill,
// height: 260.sp,
fit:BoxFit.fitWidth
),
],
),
)),
),
Container(
height: 90.sp,
// color: Color(0xFF334141),
alignment: Alignment.center,
// color: Colors.yellow,
// 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),
child: Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
child: Container(
@ -204,20 +216,31 @@ class _ShareState extends State<Share> {
),
),
// 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(
data: widget.link,
padding: EdgeInsets.zero,
version: QrVersions.auto,
size: 80.sp,
gapless: false,
backgroundColor: Colors.white,
// backgroundColor: Colors.black,
)
],
)
],
),
)
],
),
)),
))
),
),
),
Positioned(
@ -238,8 +261,12 @@ class _ShareState extends State<Share> {
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
shareAction('wx', '微信', () {}),
shareAction('wxq', '朋友圈', () {}),
shareAction('wx', '微信', () {
shareWxData(1);
}),
shareAction('wxq', '朋友圈', () {
shareWxData(2);
}),
shareAction('qq', 'QQ', () {
copyInviteText(logic.name);
}),
@ -418,4 +445,43 @@ class _ShareState extends State<Share> {
text: '${username}】邀请你加入“微乐园”,邀请码为${widget.code},点击进入${widget.link}'));
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!
.customInfo!['Label']
.toString());
if (myInfo != null) {
if (myInfo.containsKey('city')) {
if (myInfo['city']
.toString()
@ -463,6 +464,7 @@ class _TIMConversationState extends TIMUIKitState<TIMConversation> {
}
}
}
}
if (userFullInfo != null) {
List<String> userIdList =

View File

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

View File

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

View File

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