当前位置: 首页 > 知识库问答 >
问题:

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

宇文俊风
2024-11-23

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

共有1个答案

谢誉
2024-11-23

首先你要有一个 privacy page

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

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

 类似资料:
  • 点击输入框前: 点击输入框后:

  • 问题内容: 如何在Flutter应用中隐藏Android状态栏? 问题答案: SystemChrome.setEnabledSystemUIOverlays([]) 应该做你想做的。 您可以将其带回。 使用导入

  • 问题内容: How to hide the Android Status Bar in a Flutter App? 问题答案: should do what you want. You can bring it back with . Import it using

  • flutter StreamBuilder结合Riverpod状态管理返回Stream<String> 该如何定义provider

  • 我想用FCM和这个包实现本地通知,我是这样实现的:首先:我在我的项目上安装FCM和Flutter本地通知包,然后,我在Android系统中创建一个应用静态编程语言类- 申请代码: 舱单代码: 我也在稳定频道,但它不工作,我把频道改为beta,但仍然不工作 颤振医生: 颤振文件: main.dart代码: 但我有一个错误: 我在谷歌上搜索了很多,发现了一些类似的问题,比如这个。但这对我不起作用。

  • 我是新来的。我想为我的flutter应用程序实现惰性加载功能,它使用sqflite数据库存储数据。在我的数据库中有1000+行。当应用程序打开时,我想加载10个项目。当我达到第10个数据时,然后加载下一个10个,以此类推。如何实现此功能??

  • 本文向大家介绍iOS 隐私权限和通过openURL实现跳转实例,包括了iOS 隐私权限和通过openURL实现跳转实例的使用技巧和注意事项,需要的朋友参考一下 iOS 10之后苹果对于用户隐私方面要求非常严格,曾经帮朋友发布纯H5的APP,由于使用第三方而未加隐私权限都不让提交App Store。这边就是给大家列举下苹果对于最为常见的隐私以及平时我们开发是会用到的openUrl这方法所用到的key

  • 本文向大家介绍IOS10 隐私权限设置实例详解,包括了IOS10 隐私权限设置实例详解的使用技巧和注意事项,需要的朋友参考一下 Xcode8,iOS10.0系统中,使用相机功能的时候报错 主要原因是iOS10之后,相册,位置,麦克风等这些需要权限验证的东西,都需要在plist文件里面添加响应的键值对。否则都会报错,使用Privacy开头的都需要添加到plist文件里面。   后面的字符串是授权时候