import 'package:flutter/material.dart'; import 'package:zhiying_comm/util/dialog/loading/loading.dart'; import 'package:zhiying_comm/util/pdd_auth/pdd_auth_dialog.dart'; import 'package:zhiying_comm/zhiying_comm.dart'; import 'package:flutter/cupertino.dart'; import 'package:url_launcher/url_launcher.dart'; import 'pdd_auth_model.dart'; import 'pdd_auth_repository.dart'; class PddAuth { /// /// 进行拼多多授权 (无参数授权,需要请求接口) /// bool = true 需要授权,bool = false 不需要授权 /// static Future auth(BuildContext context, {String isShare = '1'}) async { // 开启loading Loading.show(context); PddAuthModel model = await PddAuthRepository().fetchNetData(isShare: isShare); Loading.dismiss(); if (!EmptyUtil.isEmpty(model)) { return await PddAuth.authParam(context, model.toJson()); } return false; } /// /// 进行拼多多授权(有参数授权) /// static Future authParam(context, Map data) async { try { if (EmptyUtil.isEmpty(context) || EmptyUtil.isEmpty(data)) return false; PddAuthModel model = PddAuthModel.fromJson(data); if (EmptyUtil.isEmpty(model) || EmptyUtil.isEmpty(model.noOpenAppUrl) || EmptyUtil.isEmpty(model.schemaUrl) || (model?.isPop ?? '0') == '0') return false; bool isConfirm = await showDialog(context: context, builder: (_) => PddAuthDialog()); /// 前往授权 if (isConfirm) { // 1. 判断是否安装 bool launched = await canLaunch(model.schemaUrl); if (launched) { launched = await launch(model.schemaUrl); } if (!launched) { RouterUtil.openWebview(model.noOpenAppUrl, context); } } } catch (e, s) { Logger.error(e, s); } return true; } }