如何在Flutter中实现隐私合规的权限调用流程?

新手上路,请多包涵

最近使用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('在这个页面弹出隐私协议和开平广告')
      );
  }
}
阅读 160
1 个回答

首先你要有一个 privacy page

 Scaffold(
        body:
          PrivacyPage(); // 展示隐私检查页
      );

PrivacyPage 里要有两个 button。第一个 button 是同意,第二个是不同意。

推荐问题
宣传栏