@@ -201,24 +201,34 @@ class NotificationSettingDialogNew extends StatelessWidget { | |||||
NotificationSettingDialogNew(this.permissModels, {Key key}) : super(key: key); | NotificationSettingDialogNew(this.permissModels, {Key key}) : super(key: key); | ||||
static PermissModel storagePermissModel = PermissModel( | |||||
permissType: PermissType.storage, | |||||
title: "存储权限", | |||||
subTitle: "用于分享照片、保存图片到相册", | |||||
iconUrl: "https://alipic.lanhuapp.com/SketchPng7acf1ec3d1c3c98ba9b58d52a5d49ff3404a0b3f131100695dcd479c8dfa215b"); | |||||
static PermissModel notificationPermissModel = PermissModel( | |||||
permissType: PermissType.notification, | |||||
title: "通知权限", | |||||
subTitle: "用于及时告知优惠动态", | |||||
iconUrl: "https://alipic.lanhuapp.com/SketchPnga11a94a0c38949016e0fced74d683c08eaa1f58366cba616a40e51a9ebbe7146"); | |||||
static PermissModel locationPermissModel = PermissModel( | |||||
permissType: PermissType.location, | |||||
title: "定位权限", | |||||
subTitle: "用于定位当前位置推荐附的优惠动态", | |||||
iconUrl: "https://alipic.lanhuapp.com/SketchPng409f144b2042e81840e20c2d528b3f50994869e3f22b5d7d2b8a47abcdb72953"); | |||||
static Future show(BuildContext context, {List<PermissModel> permissModels}) async { | static Future show(BuildContext context, {List<PermissModel> permissModels}) async { | ||||
List<PermissModel> newPermissModels; | List<PermissModel> newPermissModels; | ||||
if (permissModels == null) { | if (permissModels == null) { | ||||
newPermissModels = List(); | newPermissModels = List(); | ||||
if (!await Permission.storage.isGranted) { | if (!await Permission.storage.isGranted) { | ||||
newPermissModels.add(PermissModel( | |||||
permissType: PermissType.storage, | |||||
title: "存储权限", | |||||
subTitle: "用于缓存数据,保存图片到相册", | |||||
iconUrl: "https://alipic.lanhuapp.com/SketchPng7acf1ec3d1c3c98ba9b58d52a5d49ff3404a0b3f131100695dcd479c8dfa215b")); | |||||
newPermissModels.add(storagePermissModel); | |||||
} | } | ||||
if (!await Permission.notification.isGranted) { | if (!await Permission.notification.isGranted) { | ||||
newPermissModels.add(PermissModel( | |||||
permissType: PermissType.notification, | |||||
title: "通知权限", | |||||
subTitle: "用于及时告知优惠动态", | |||||
iconUrl: "https://alipic.lanhuapp.com/SketchPnga11a94a0c38949016e0fced74d683c08eaa1f58366cba616a40e51a9ebbe7146")); | |||||
newPermissModels.add(notificationPermissModel); | |||||
} | } | ||||
} else { | } else { | ||||
newPermissModels = permissModels; | newPermissModels = permissModels; | ||||
@@ -282,7 +292,7 @@ class NotificationSettingDialogNew extends StatelessWidget { | |||||
await Permission.notification.request(); | await Permission.notification.request(); | ||||
if (await Permission.notification.isDenied) { | if (await Permission.notification.isDenied) { | ||||
if (Platform.isAndroid) { | if (Platform.isAndroid) { | ||||
await NativeUtil.openAppSettings(); | |||||
await NativeUtil.openAppSettings(); | |||||
} else { | } else { | ||||
openAppSettings(); | openAppSettings(); | ||||
} | } | ||||
@@ -295,6 +305,8 @@ class NotificationSettingDialogNew extends StatelessWidget { | |||||
if (await Permission.storage.isPermanentlyDenied) { | if (await Permission.storage.isPermanentlyDenied) { | ||||
openAppSettings(); | openAppSettings(); | ||||
} | } | ||||
} else if (item?.permissType == PermissType.location) { | |||||
await Permission.location.request(); | |||||
} | } | ||||
} | } | ||||
Navigator.pop(context, true); | Navigator.pop(context, true); | ||||
@@ -316,10 +328,11 @@ class NotificationSettingDialogNew extends StatelessWidget { | |||||
), | ), | ||||
), | ), | ||||
GestureDetector( | GestureDetector( | ||||
onTap: () { | |||||
Navigator.pop(context, false); | |||||
}, | |||||
child: Container(width: 30, height: 30, margin: EdgeInsets.only(top: 10), child: CloseButton(color: HexColor.fromHex("#FFFFFF")))) | |||||
onTap: () { | |||||
Navigator.pop(context, false); | |||||
}, | |||||
child: Container(alignment: Alignment.center, margin: EdgeInsets.only(top: 10), child: CloseButton(color: HexColor.fromHex("#FFFFFF"))), | |||||
) | |||||
], | ], | ||||
), | ), | ||||
), | ), | ||||
@@ -382,4 +395,4 @@ class PermissModel { | |||||
PermissModel({this.iconUrl, this.title, this.subTitle, this.permissType}); | PermissModel({this.iconUrl, this.title, this.subTitle, this.permissType}); | ||||
} | } | ||||
enum PermissType { notification, storage } | |||||
enum PermissType { notification, storage, location } |
@@ -358,10 +358,16 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||||
Future _showPolicy() async { | Future _showPolicy() async { | ||||
await Future.delayed(Duration(milliseconds: 1000), () async { | await Future.delayed(Duration(milliseconds: 1000), () async { | ||||
// 通知弹窗 | // 通知弹窗 | ||||
if (!await Permission.notification.isGranted || !await Permission.storage.isGranted) { | |||||
await NotificationSettingDialogNew.show(context); | |||||
///每打开5次检查一次权限 | |||||
String showNotiPermissionTime = await SharedPreferencesUtil.getStringValue(Constants.showNotiPermissionTime, defaultVal: "5"); | |||||
int timer = int.tryParse(showNotiPermissionTime) ?? 0; | |||||
if (timer % 5 == 0) { | |||||
if (!await Permission.notification.isGranted || !await Permission.storage.isGranted) { | |||||
await NotificationSettingDialogNew.show(context); | |||||
} | |||||
} | } | ||||
timer++; | |||||
SharedPreferencesUtil.setStringValue(Constants.showNotiPermissionTime, timer.toString()); | |||||
// 活动弹窗 | // 活动弹窗 | ||||
await AdvertisingDialog.show(context); | await AdvertisingDialog.show(context); | ||||
@@ -23,7 +23,7 @@ class Constants { | |||||
static String isShowPolicy = "is_show_policy"; | static String isShowPolicy = "is_show_policy"; | ||||
///推送权限弹窗 | ///推送权限弹窗 | ||||
static String isShowNotiPermission = "isShowNotiPermission"; | |||||
static String showNotiPermissionTime = "showNotiPermissionTime"; | |||||
//==============================弹窗===================================end | //==============================弹窗===================================end | ||||
@@ -12,6 +12,7 @@ import 'package:permission_handler/permission_handler.dart'; | |||||
import 'package:share_extend/share_extend.dart'; | import 'package:share_extend/share_extend.dart'; | ||||
import 'package:sharesdk_plugin/sharesdk_plugin.dart'; | import 'package:sharesdk_plugin/sharesdk_plugin.dart'; | ||||
import 'package:zhiying_base_widget/dialog/global_dialog/intellect_search_goods_dialog/intellect_create.dart'; | import 'package:zhiying_base_widget/dialog/global_dialog/intellect_search_goods_dialog/intellect_create.dart'; | ||||
import 'package:zhiying_base_widget/dialog/global_dialog/notification_setting_dialog/notification_setting_dialog.dart'; | |||||
import 'package:zhiying_base_widget/dialog/loading/loading.dart'; | import 'package:zhiying_base_widget/dialog/loading/loading.dart'; | ||||
import 'package:zhiying_base_widget/utils/image_download_util/image_download_util.dart'; | import 'package:zhiying_base_widget/utils/image_download_util/image_download_util.dart'; | ||||
import 'package:zhiying_base_widget/widgets/share/models/share_alert_model.dart'; | import 'package:zhiying_base_widget/widgets/share/models/share_alert_model.dart'; | ||||
@@ -38,6 +39,7 @@ class _ShareAlertState extends State<ShareAlert> { | |||||
@override | @override | ||||
void initState() { | void initState() { | ||||
Logger.log('设置分享页面不弹'); | Logger.log('设置分享页面不弹'); | ||||
/// 设置分享页面不弹 | /// 设置分享页面不弹 | ||||
IntellectCreate.setCheck(false); | IntellectCreate.setCheck(false); | ||||
NetUtil.request('/api/v1/mod/${widget.skipIdentifier}', method: NetMethod.GET, onCache: (data) { | NetUtil.request('/api/v1/mod/${widget.skipIdentifier}', method: NetMethod.GET, onCache: (data) { | ||||
@@ -57,6 +59,7 @@ class _ShareAlertState extends State<ShareAlert> { | |||||
@override | @override | ||||
void dispose() { | void dispose() { | ||||
Logger.log('设置智能弹窗可以弹'); | Logger.log('设置智能弹窗可以弹'); | ||||
/// 之后可以弹 | /// 之后可以弹 | ||||
IntellectCreate.setCheck(true); | IntellectCreate.setCheck(true); | ||||
super.dispose(); | super.dispose(); | ||||
@@ -120,12 +123,6 @@ class _ShareAlertContent extends StatefulWidget { | |||||
class _ShareAlertContentState extends State<_ShareAlertContent> { | class _ShareAlertContentState extends State<_ShareAlertContent> { | ||||
@override | @override | ||||
void initState() { | void initState() { | ||||
Future.delayed(Duration(milliseconds: 100), () async { | |||||
var status = await Permission.storage.status; | |||||
if (status != PermissionStatus.granted) { | |||||
status = await Permission.storage.request(); | |||||
} | |||||
}); | |||||
super.initState(); | super.initState(); | ||||
} | } | ||||
@@ -188,8 +185,8 @@ class _ShareAlertContentState extends State<_ShareAlertContent> { | |||||
spacing: 10, | spacing: 10, | ||||
runSpacing: 10, | runSpacing: 10, | ||||
children: widget.iconModel?.icons?.map((item) { | children: widget.iconModel?.icons?.map((item) { | ||||
return _createIcon(item); | |||||
})?.toList() ?? | |||||
return _createIcon(item); | |||||
})?.toList() ?? | |||||
[], | [], | ||||
); | ); | ||||
} | } | ||||
@@ -222,9 +219,16 @@ class _ShareAlertContentState extends State<_ShareAlertContent> { | |||||
//检查是否有存储权限 | //检查是否有存储权限 | ||||
var status = await Permission.storage.status; | var status = await Permission.storage.status; | ||||
if (!status.isGranted) { | if (!status.isGranted) { | ||||
status = await Permission.storage.request(); | |||||
print(status); | |||||
return; | |||||
var result = await showDialog(context: context, child: NotificationSettingDialogNew([NotificationSettingDialogNew.storagePermissModel])); | |||||
if (result != null && result) { | |||||
await Permission.storage.request(); | |||||
if (await Permission.storage.isPermanentlyDenied) { | |||||
openAppSettings(); | |||||
return; | |||||
} | |||||
} else { | |||||
return; | |||||
} | |||||
} | } | ||||
int count = 0; | int count = 0; | ||||
if (widget.model.poster != null) { | if (widget.model.poster != null) { | ||||
@@ -299,8 +303,8 @@ class _ShareAlertContentState extends State<_ShareAlertContent> { | |||||
} | } | ||||
if (plateform == ShareSDKPlatforms.qZone && widget?.model?.content != null) { | if (plateform == ShareSDKPlatforms.qZone && widget?.model?.content != null) { | ||||
widget?.model?.title = null; | widget?.model?.title = null; | ||||
widget?.model?.image=[]; | |||||
widget?.model?.url=null; | |||||
widget?.model?.image = []; | |||||
widget?.model?.url = null; | |||||
type = SSDKContentTypes.message; | type = SSDKContentTypes.message; | ||||
} | } | ||||
@@ -392,10 +396,13 @@ class _ShareAlertContentState extends State<_ShareAlertContent> { | |||||
// 检查并请求权限 | // 检查并请求权限 | ||||
var status = await Permission.storage.status; | var status = await Permission.storage.status; | ||||
if (status != PermissionStatus.granted) { | if (status != PermissionStatus.granted) { | ||||
status = await Permission.storage.request(); | |||||
var result = await showDialog(context: context, child: NotificationSettingDialogNew([NotificationSettingDialogNew.storagePermissModel])); | |||||
if (result != null && result) { | |||||
status = await Permission.storage.request(); | |||||
} | |||||
} | } | ||||
if (status != PermissionStatus.granted) { | if (status != PermissionStatus.granted) { | ||||
Fluttertoast.showToast(msg: '暂无权限,分享失败'); | |||||
Fluttertoast.showToast(msg: '暂无存储权限,分享失败'); | |||||
return null; | return null; | ||||
} | } | ||||
@@ -18,6 +18,7 @@ import 'package:permission_handler/permission_handler.dart'; | |||||
import 'package:share_extend/share_extend.dart'; | import 'package:share_extend/share_extend.dart'; | ||||
import 'package:sharesdk_plugin/sharesdk_plugin.dart'; | import 'package:sharesdk_plugin/sharesdk_plugin.dart'; | ||||
import 'package:zhiying_base_widget/dialog/global_dialog/intellect_search_goods_dialog/intellect_create.dart'; | import 'package:zhiying_base_widget/dialog/global_dialog/intellect_search_goods_dialog/intellect_create.dart'; | ||||
import 'package:zhiying_base_widget/dialog/global_dialog/notification_setting_dialog/notification_setting_dialog.dart'; | |||||
import 'package:zhiying_base_widget/dialog/loading/loading.dart'; | import 'package:zhiying_base_widget/dialog/loading/loading.dart'; | ||||
import 'package:zhiying_base_widget/utils/image_download_util/image_download_util.dart'; | import 'package:zhiying_base_widget/utils/image_download_util/image_download_util.dart'; | ||||
import 'package:zhiying_base_widget/widgets/share/models/share_alert_model.dart'; | import 'package:zhiying_base_widget/widgets/share/models/share_alert_model.dart'; | ||||
@@ -378,7 +379,13 @@ class _ShareAlertContentState extends State<_ShareAlertContent> { | |||||
//检查是否有存储权限 | //检查是否有存储权限 | ||||
var status = await Permission.storage.status; | var status = await Permission.storage.status; | ||||
if (!status.isGranted) { | if (!status.isGranted) { | ||||
status = await Permission.storage.request(); | |||||
var result = await showDialog(context: context, child: NotificationSettingDialogNew([NotificationSettingDialogNew.storagePermissModel])); | |||||
if(result!=null&&result){ | |||||
status = await Permission.storage.request(); | |||||
} | |||||
if(!status.isGranted){ | |||||
Fluttertoast.showToast(msg: '暂无存储权限,分享失败'); | |||||
} | |||||
print(status); | print(status); | ||||
return; | return; | ||||
} | } | ||||
@@ -4,9 +4,10 @@ export 'dialog/loading/loading.dart'; | |||||
export 'package:flutter_swiper/flutter_swiper.dart'; | export 'package:flutter_swiper/flutter_swiper.dart'; | ||||
export 'package:zhiying_base_widget/pages/main_page/model/background_model.dart'; | export 'package:zhiying_base_widget/pages/main_page/model/background_model.dart'; | ||||
export 'package:zhiying_base_widget/pages/custom_page/bloc/background_bloc.dart'; | export 'package:zhiying_base_widget/pages/custom_page/bloc/background_bloc.dart'; | ||||
export 'package:pull_to_refresh/pull_to_refresh.dart'; | |||||
export 'package:pull_to_refresh/pull_to_refresh.dart'; | |||||
export 'package:flutter_user_agent/flutter_user_agent.dart'; | export 'package:flutter_user_agent/flutter_user_agent.dart'; | ||||
export 'package:zhiying_base_widget/widgets/restart_widget/restart_widget.dart'; | export 'package:zhiying_base_widget/widgets/restart_widget/restart_widget.dart'; | ||||
export 'package:amap_flutter_location/amap_flutter_location.dart'; | export 'package:amap_flutter_location/amap_flutter_location.dart'; | ||||
export 'package:amap_flutter_location/amap_location_option.dart'; | export 'package:amap_flutter_location/amap_location_option.dart'; | ||||
export 'package:tab_indicator_styler/tab_indicator_styler.dart'; | |||||
export 'package:tab_indicator_styler/tab_indicator_styler.dart'; | |||||
export 'package:zhiying_base_widget/dialog/global_dialog/notification_setting_dialog/notification_setting_dialog.dart'; |