修复一些bug,增加审核账号判断提示,邀请功能微信和朋友圈提交
This commit is contained in:
parent
d94bf206d5
commit
4c56a2f618
@ -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;
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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('开通会员之后才能发送图片');
|
||||
|
||||
@ -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(),//如果不填则不显示左右按钮
|
||||
);
|
||||
|
||||
@ -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=分享场景,1好友会话,2朋友圈,3收藏
|
||||
*/
|
||||
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!);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -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 =
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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': '请求异常'};
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user