最近使用Flutter开发app上架应用商店,遇到隐私合规问题。需求的业务流程是这样的,用户首次启动APP后,会弹出一个同意或者退出的隐私提示窗口,当用户点同意后,才进入APP主页,才能开始收集用户信息,如设备序列号这些。
由于不太了解flutter这些权限的调用流程,怎样才能实现以上的需求呢?
目前我的文件结构如下,但是上架时被驳回,理由是未经用户同意就提前收集设备信息。
目录结构及代码:
1、lib\main.dart
void main() {
//...
runApp(const Application());
//...
}
2、lib\application.dart
class Application extends StatefulWidget {
const Application({super.key});
@override
State<Application> createState() => _ApplicationState();
}
class _ApplicationState extends State<Application> {
@override
void initState() {
//检查版本更新、判断用户token过期等业务逻辑
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return ScreenUtilInit(
designSize: const Size(1080, 2340),
minTextAdapt: true,
splitScreenMode: true,
builder: (context, child) {
return
GetMaterialApp(
home: const Init()
);
}
);
}
}
3、lib\splash\init.dart
class Init extends StatefulWidget {
const Init({super.key});
@override
State<Init> createState() => _InitState();
}
class _InitState extends State<Init> {
late Timer _timer;
int _secondsRemaining = 5;
Map data = {};
bool loading = true;
Storage storage = Storage();
bool isShowTip = false;
@override
void initState() {
//获取开屏广告,判断用户是否有同意隐私
super.initState();
}
@override
void dispose() {
// TODO: implement dispose
_timer.cancel();
super.dispose();
}
@override
Widget build(BuildContext context) {
return
Scaffold(
body:
Text('在这个页面弹出隐私协议和开平广告')
);
}
}
首先你要有一个 privacy page
PrivacyPage 里要有两个 button。第一个 button 是同意,第二个是不同意。