Flutter对话框插件dialog_pp_flutter的使用
Flutter对话框插件dialog_pp_flutter的使用
在本示例中,我们将展示如何在Flutter应用中使用dialog_pp_flutter
插件来创建和管理不同的对话框。该插件提供了多种对话框类型,包括更新对话框、奖励对话框、退出对话框等。
添加到 void main
await PPDialog.newVersionCode();
这段代码用于初始化插件并检查是否有新版本的应用。
获取版本信息详情
print(AppDetailsPP.to.appName.value);
print(AppDetailsPP.to.packageName.value);
print(AppDetailsPP.to.versionApp.value);
print(AppDetailsPP.to.buildNumber.value);
这段代码用于获取当前应用的名称、包名、版本号和构建号。
更新对话框
自定义更新对话框
PPDialog.updateDialog(context,
isUpdateRequired: true,
adSettingAppVersionCode: 4,
isPopup: true,
apiVersionCode: 8,
appLogoApi: "",
appNameApi: "",
subtitleAppApi: "",
appWebsiteUrl: ""
);
此代码段展示了如何创建一个自定义的更新对话框。如果设置了isUpdateRequired
为true
,则用户必须更新应用才能继续使用。
自动更新对话框
PPDialog.autoUpdate();
这段代码用于自动检查并显示更新对话框。
抽屉菜单
抽屉API调用
await advertisementDrawerApi("enter more live url drawer api");
这段代码用于从API加载更多应用信息。
抽屉UI
PPDialog.drawerScreen(appLogo: "",
privacyPolicy:"",
feedbackEmailId: "",
emailSubject: "",
emailMessage:""
)
此代码段展示了如何创建一个带有隐私政策、反馈邮箱等信息的抽屉菜单。
评分对话框
自动评分对话框
PPDialog.autoRate();
这段代码用于自动显示评分对话框。
自定义评分对话框
PPDialog.rateDialogCustom(context,logoApp: "");
此代码段展示了如何创建一个带有自定义应用图标(logoApp
)的评分对话框。
奖励对话框
PPDialog.rewardDialog(
rewardMessage: "Watch Reward ads for get IPTV list free",
onTap: () {},
);
此代码段展示了如何创建一个奖励对话框,当用户观看广告时可以获得免费的IPTV列表。
退出对话框
PPDialog.exitDialog(
mediumNative: Container(
alignment: Alignment.center,
height: 170.h,
color: Colors.green[200],
child: Text("Medium Size Native Ad"),
),
appLogo: ''
);
此代码段展示了如何创建一个包含中型原生广告的退出对话框。
条款与条件对话框
PPDialog.termsConditions(context,
privacyPolicyUrl: "",
termsConditionUrl: "",
isPrivacyPolicy:
);
此代码段展示了如何创建一个包含隐私政策和条款与条件的对话框。
OneSignal通知
PPDialog.oneSignalNotification(oneSignalId: "");
此代码段展示了如何创建一个OneSignal通知对话框。
应用内购买
PPDialog.inAppPurchase(
onError:,
onComplete: ,
productId: "");
此代码段展示了如何创建一个应用内购买对话框。
网络连接对话框
PPDialog.internetDialogCheck(callback: );
此代码段展示了如何创建一个网络连接检查对话框。
完整示例代码
以下是一个完整的示例代码,展示了如何在应用中使用这些对话框:
import 'dart:async';
import 'package:dialog_pp_flutter/api_call.dart';
import 'package:dialog_pp_flutter/dialog_pp_flutter.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';
Future<void> main() async {
await PPDialog.newVersionCode();
await await advertisementDrawerApi("");
await fetchAlbum();
runApp(ScreenUtilInit(
builder: (context, child) => const GetMaterialApp(
home: MYYYYY(),
)));
}
class MYYYYY extends StatefulWidget {
const MYYYYY({Key? key}) : super(key: key);
[@override](/user/override)
State<MYYYYY> createState() => _MYYYYYState();
}
class _MYYYYYState extends State<MYYYYY> {
ondansd() async {
await advertisementDrawerApi("");
Future.delayed(const Duration(seconds: 3), () {
Get.to(const MyApp());
});
}
[@override](/user/override)
void initState() {
// TODO: implement initState
super.initState();
ondansd();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("asd6as56d456as4d56as4d56as4d56as4d56as4d56as4d")),
);
}
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
checkVersion() async {}
onCompletetete() {
print("done done");
}
ondansd() {
print("connection done done go go gogogogogo");
}
[@override](/user/override)
void initState() {
// TODO: implement initState
super.initState();
PPDialog.termsConditions(context,
privacyPolicyUrl:
"https://pages.flycricket.io/ipl-live-2022/terms.html",
termsConditionUrl:
"https://pages.flycricket.io/ipl-live-2022/terms.html",
isPrivacyPolicy: true);
}
[@override](/user/override)
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () {
return Future.value(false);
},
child: Scaffold(
drawer: PPDialog.drawerScreen(
appLogo: "logo",
privacyPolicy: "privacyPolicy",
feedbackEmailId: "feedbackEmailId",
emailSubject: "emailSubject",
emailMessage: "emailMessage", apiAppVersionCode: 50),
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: InkWell(
onTap: () {
PPDialog.rateDialogCustom(context, logoApp: "logoApp");
PPDialog.updateDialog(context,
isUpdateRequired: true,
isPopup: true,
apiVersionCode: 8,
adSettingAppVersionCode: 4,
shuffle: true,
clickCount: 3);
PPDialog.rewardDialog(rewardMessage: "kkkkkkkksdfsdfhgadhjsfkadshfjkhjsdgfgsdhjfghjgsdfhjgdsj", onTap: () {},);
},
child: const Text('dsfdsfdsfn\ndsfdsf\ndfsgdsfds\ndfdsfdsfdsfds')),
),
),
);
}
}
Settings? modelApi;
Future<Settings?> fetchAlbum() async {
final response = await http.get(Uri.parse(
"https://gitlab.com/ks.bitcoding/test_random-appupdate-list/-/raw/main/test.json"));
if (response.statusCode == 200) {
return modelApi = Settings.fromJson(jsonDecode(response.body));
} else {
throw Exception('Failed to load album');
}
}
Settings settingsFromJson(String str) => Settings.fromJson(json.decode(str));
String settingsToJson(Settings data) => json.encode(data.toJson());
class Settings {
Settings({
required this.comBitlinksBrazilIptvM3Ulist,
});
ComBitlinksBrazilIptvM3Ulist comBitlinksBrazilIptvM3Ulist;
factory Settings.fromJson(Map<String, dynamic> json) => Settings(
comBitlinksBrazilIptvM3Ulist: ComBitlinksBrazilIptvM3Ulist.fromJson(
json["com.bitlinks.brazil.iptv.m3ulist"]),
);
Map<String, dynamic> toJson() => {
"com.bitlinks.brazil.iptv.m3ulist":
comBitlinksBrazilIptvM3Ulist.toJson(),
};
}
// 其他类的定义省略
更多关于Flutter对话框插件dialog_pp_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter对话框插件dialog_pp_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何在Flutter项目中使用dialog_pp_flutter
插件来创建对话框的示例。dialog_pp_flutter
是一个用于显示各种对话框的Flutter插件,支持自定义样式和功能。
首先,你需要在你的pubspec.yaml
文件中添加dialog_pp_flutter
依赖:
dependencies:
flutter:
sdk: flutter
dialog_pp_flutter: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
接下来,你可以在你的Dart文件中使用DialogPP
类来显示对话框。以下是一个简单的示例,展示了如何显示一个包含标题、消息和按钮的对话框:
import 'package:flutter/material.dart';
import 'package:dialog_pp_flutter/dialog_pp_flutter.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'DialogPP Flutter Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
void _showDialog() {
DialogPP.showDialog(
context: context,
config: DialogPPConfig(
title: "提示",
message: "这是一个提示对话框!",
positiveButton: DialogPPButton(
text: "确定",
onPressed: () {
Navigator.pop(context);
},
),
negativeButton: DialogPPButton(
text: "取消",
onPressed: () {
Navigator.pop(context);
},
),
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("DialogPP Flutter Example"),
),
body: Center(
child: ElevatedButton(
onPressed: _showDialog,
child: Text("显示对话框"),
),
),
);
}
}
在这个示例中,我们创建了一个简单的Flutter应用,包含一个按钮。当点击按钮时,会调用_showDialog
方法来显示一个对话框。
DialogPP.showDialog
方法用于显示对话框。DialogPPConfig
类用于配置对话框的参数,包括标题、消息、正面按钮和负面按钮。DialogPPButton
类用于配置按钮的文本和点击事件。
你可以根据需要自定义对话框的样式和功能,例如更改按钮颜色、字体大小、添加更多按钮等。dialog_pp_flutter
插件提供了丰富的配置选项,以满足不同的需求。
请确保你已经安装了最新版本的dialog_pp_flutter
插件,并查阅其官方文档以获取更多详细信息和高级用法。