diff --git a/marking_app/lib/pages/login/index.dart b/marking_app/lib/pages/login/index.dart index 5225ea5..64de2ba 100644 --- a/marking_app/lib/pages/login/index.dart +++ b/marking_app/lib/pages/login/index.dart @@ -72,7 +72,7 @@ class _TheLoginState extends ConsumerState with CommonMixin { @override void initState() { - Future.delayed(Duration(seconds: 3), () => sysProtocol(context)); + Future.delayed(Duration(seconds: 2), () => sysProtocol(context)); Future(() { // 延迟更新 Provider ref.read(userTokenProvider.notifier).clean(); // 进入登录页先清空信息 diff --git a/marking_app/lib/pages/mainPage.dart b/marking_app/lib/pages/mainPage.dart index 3ceb21c..2dc02c1 100644 --- a/marking_app/lib/pages/mainPage.dart +++ b/marking_app/lib/pages/mainPage.dart @@ -20,7 +20,6 @@ import 'package:marking_app/pages/homework_correction/index.dart'; import 'package:marking_app/pages/reports/index.dart'; import 'package:marking_app/provider/do_marking_provider.dart'; import 'package:marking_app/provider/upload_file_provider.dart'; -import 'package:marking_app/routes/RouterManager.dart'; import 'package:marking_app/utils/app_upgrade/UpdateDialog.dart'; import 'package:marking_app/utils/app_upgrade/model/UpdateAppEvent.dart'; import 'package:marking_app/common/model/sys/system_version.dart'; @@ -29,7 +28,6 @@ import 'package:marking_app/pages/marking/index.dart'; import 'package:marking_app/provider/user_provider.dart'; import 'package:marking_app/utils/index.dart'; import 'package:marking_app/utils/request/rest_client.dart'; -import 'package:marking_app/utils/sys_protocol.dart'; import 'package:package_info/package_info.dart'; class TheMainPage extends StatefulHookConsumerWidget { @@ -63,7 +61,6 @@ class TheMainPageState extends ConsumerState with CommonMixin { @override void initState() { _pageController = PageController(initialPage: tabIndex); - Future.delayed(Duration(seconds: 1), () => sysProtocol(context)); _otherFocusNode = FocusNode(); // 由于本项目必须登录才能浏览,所以APP升级校验在登录后 _userListener = ref.read(userProvider.notifier).addListener((state) { diff --git a/marking_app/lib/utils/const_text.dart b/marking_app/lib/utils/const_text.dart index 31a778b..8fff33a 100644 --- a/marking_app/lib/utils/const_text.dart +++ b/marking_app/lib/utils/const_text.dart @@ -7,24 +7,145 @@ enum AGREEMENT_KEY { PRIVACY_GREEMENT, USER_AGREEMENT } final Map AGREEMENT_MAP = { AGREEMENT_KEY.PRIVACY_GREEMENT: AgreementClass( title: '隐私协议', - richText: '''

本软件尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、 - 更有个性化的服务,本软件会按照本隐私权政策的规定使用和披露您的个人信息。但本软件将以高度的勤勉、审慎义务对待这些信息。 - 除本隐私权政策另有规定外,在未征得您事先许可的情况下,本软件不会将这些信息对外披露或向第三方提供。本软件会不时更新本隐私权政策。 - 您在同意本软件服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于本软件服务使用协议不可分割的一部分。 -

1.适用范围

a)在您使用本软件网络服务,本软件自动接收并记录的您的手机上的信息,包括但不限于您的健康数据、使用的语言、 - 访问日期和时间、软硬件特征信息及您需求的网页记录等数据;

2.信息的使用

a)在获得您的数据之后,本软件会将其上传至服务器, - 以生成您的排行榜数据,以便您能够更好地使用服务。

3.信息披露

a)本软件不会将您的信息披露给不受信任的第三方。 -

b)根据法律的有关规定,或者行政或司法机构的要求,向第三方或者行政、司法机构披露;

c)如您出现违反中国有关法律、 - 法规或者相关规则的情况,需要向第三方披露;

4.信息存储和交换

本软件收集的有关您的信息和资料将保存在本软件及(或)其关联公司的服务器上, - 这些信息和资料可能传送至您所在国家、地区或本软件收集信息和资料所在地的境外并在境外被访问、存储和展示。 -

5.信息安全

a)在使用本软件网络服务进行网上交易时,您不可避免的要向交易对方或潜在的交易对方披露自己的个人信息,如联络方式或者邮政地址。 - 请您妥善保护自己的个人信息,仅在必要的情形下向他人提供。如您发现自己的个人信息泄密,请您立即联络本软件客服,以便本软件采取相应措施。 -


''', + richText: ''' + + + + + Document + + +

隐私政策

+
更新日期:2023/1/1
+
生效日期:2023/1/1
+

导言

+

+ 学而有道阅卷 是一款由 重庆智学力人工智能科技有限公司 (以下简称“我们”)提供的产品。 + 您在使用我们的服务时,我们可能会收集和使用您的相关信息。我们希望通过本《隐私政策》向您说明,在使用我们的服务时,我们如何收集、使用、储存和分享这些信息,以及我们为您提供的访问、更新、控制和保护这些信息的方式。 + 本《隐私政策》与您所使用的 学而有道阅卷 服务息息相关,希望您仔细阅读,在需要时,按照本《隐私政策》的指引,作出您认为适当的选择。本《隐私政策》中涉及的相关技术词汇,我们尽量以简明扼要的表述,并提供进一步说明的链接,以便您的理解。 +

+

您使用或继续使用我们的服务,即意味着同意我们按照本《隐私政策》收集、使用、储存和分享您的相关信息。

+

如对本《隐私政策》或相关事宜有任何问题,请通过 yq0826@dingtalk.com 与我们联系。

+ +

1. 我们收集的信息

+

我们或我们的第三方合作伙伴提供服务时,可能会收集、储存和使用下列与您有关的信息。如果您不提供相关信息,可能无法注册成为我们的用户或无法享受我们提供的某些服务,或者无法达到相关服务拟达到的效果。

+ +
    +
  • 位置信息,指您开启设备定位功能并使用我们基于位置提供的相关服务时,收集的有关您位置的信息,包括:
    • 您通过具有定位功能的移动设备使用我们的服务时,通过GPS或WiFi等方式收集的您的地理位置信息;
    • 您可以通过关闭定位功能,停止对您的地理位置信息的收集。
  • +
  • 个人信息,您在注册账户或使用我们的服务时,向我们提供的相关个人信息,例如电话号码、电子邮件等。
  • +
  • 日志信息,指您使用我们的服务时,系统可能通过cookies、标识符及相关技术收集的信息,包括您的设备信息浏览信息点击信息,并将该等信息储存为日志信息,为您提供个性化的用户体验、保障服务安全。您可以通过浏览器设置拒绝或管理cookie、标识符或相关技术的使用。
  • +
+ + + + + + +

2. 信息的存储

+2.1 信息存储的方式和期限 +
    +
  • 我们会通过安全的方式存储您的信息,包括本地存储(例如利用APP进行数据缓存)、数据库和服务器日志。
  • +
  • 一般情况下,我们只会在为实现服务目的所必需的时间内或法律法规规定的条件下存储您的个人信息。
  • +
+ +2.2 信息存储的地域 +
    +
  • 我们会按照法律法规规定,将境内收集的用户个人信息存储于中国境内。
  • +
  • 目前我们不会跨境传输或存储您的个人信息。将来如需跨境传输或存储的,我们会向您告知信息出境的目的、接收方、安全保证措施和安全风险,并征得您的同意。
  • +
+ +2.3 产品或服务停止运营时的通知 +
    +
  • 当我们的产品或服务发生停止运营的情况时,我们将以推送通知、公告等形式通知您,并在合理期限内删除您的个人信息或进行匿名化处理,法律法规另有规定的除外。
  • +
+ +

3. 信息安全

+

+我们使用各种安全技术和程序,以防信息的丢失、不当使用、未经授权阅览或披露。例如,在某些服务中,我们将利用加密技术(例如SSL)来保护您提供的个人信息。但请您理解,由于技术的限制以及可能存在的各种恶意手段,在互联网行业,即便竭尽所能加强安全措施,也不可能始终保证信息百分之百的安全。您需要了解,您接入我们的服务所用的系统和通讯网络,有可能因我们可控范围外的因素而出现问题。 +

+ +

4. 我们如何使用信息

+

我们可能将在向您提供服务的过程之中所收集的信息用作下列用途:

+
    +
  • 向您提供服务;
  • +
  • 在我们提供服务时,用于身份验证、客户服务、安全防范、诈骗监测、存档和备份用途,确保我们向您提供的产品和服务的安全性;
  • +
  • 帮助我们设计新服务,改善我们现有服务;
  • +
  • 使我们更加了解您如何接入和使用我们的服务,从而针对性地回应您的个性化需求,例如语言设定、位置设定、个性化的帮助服务和指示,或对您和其他用户作出其他方面的回应;
  • +
  • 向您提供与您更加相关的广告以替代普遍投放的广告;
  • +
  • 评估我们服务中的广告和其他促销及推广活动的效果,并加以改善;
  • +
  • 软件认证或管理软件升级;
  • +
  • 让您参与有关我们产品和服务的调查。
  • +
+ +

5. 信息共享

+

+目前,我们不会主动共享或转让您的个人信息至第三方,如存在其他共享或转让您的个人信息或您需要我们将您的个人信息共享或转让至第三方情形时,我们会直接或确认第三方征得您对上述行为的明示同意。 +

+

+为了投放广告,评估、优化广告投放效果等目的,我们需要向广告主及其代理商等第三方合作伙伴共享您的部分数据,要求其严格遵守我们关于数据隐私保护的措施与要求,包括但不限于根据数据保护协议、承诺书及相关数据处理政策进行处理,避免识别出个人身份,保障隐私安全。 +

+

+我们不会向合作伙伴分享可用于识别您个人身份的信息(例如您的姓名或电子邮件地址),除非您明确授权。 +

+

+我们不会对外公开披露所收集的个人信息,如必须公开披露时,我们会向您告知此次公开披露的目的、披露信息的类型及可能涉及的敏感信息,并征得您的明示同意。 +

+

+随着我们业务的持续发展,我们有可能进行合并、收购、资产转让等交易,我们将告知您相关情形,按照法律法规及不低于本《隐私政策》所要求的标准继续保护或要求新的控制者继续保护您的个人信息。 +

+

+另外,根据相关法律法规及国家标准,以下情形中,我们可能会共享、转让、公开披露个人信息无需事先征得您的授权同意: +

+
    +
  • 与国家安全、国防安全直接相关的;
  • +
  • 与公共安全、公共卫生、重大公共利益直接相关的;
  • +
  • 犯罪侦查、起诉、审判和判决执行等直接相关的;
  • +
  • 出于维护个人信息主体或其他个人的生命、财产等重大合法权益但又很难得到本人同意的;
  • +
  • 个人信息主体自行向社会公众公开个人信息的;
  • +
  • 从合法公开披露的信息中收集个人信息的,如合法的新闻报道、政府信息公开等渠道。
  • +
+ +

6. 您的权利

+

+在您使用我们的服务期间,我们可能会视产品具体情况为您提供相应的操作设置,以便您可以查询、删除、更正或撤回您的相关个人信息,您可参考相应的具体指引进行操作。此外,我们还设置了投诉举报渠道,您的意见将会得到及时的处理。如果您无法通过上述途径和方式行使您的个人信息主体权利,您可以通过本《隐私政策》中提供的联系方式提出您的请求,我们会按照法律法规的规定予以反馈。 +

+

当您决定不再使用我们的产品或服务时,可以申请注销账户。注销账户后,除法律法规另有规定外,我们将删除或匿名化处理您的个人信息。

+ +

7. 变更

+

+我们可能适时修订本《隐私政策》的条款。当变更发生时,我们会在版本更新时向您提示新的《隐私政策》,并向您说明生效日期。请您仔细阅读变更后的《隐私政策》内容,若您继续使用我们的服务,即表示您同意我们按照更新后的《隐私政策》处理您的个人信息。 +

+ +

8. 未成年人保护

+

+我们鼓励父母或监护人指导未满十八岁的未成年人使用我们的服务。我们建议未成年人鼓励他们的父母或监护人阅读本《隐私政策》,并建议未成年人在提交的个人信息之前寻求父母或监护人的同意和指导。 +

+ +''', ), AGREEMENT_KEY.USER_AGREEMENT: AgreementClass( title: '用户协议', - richText: - '''

用户在使用技术开发方(即,以下统称“技术开发方”)提供的各项服务之前,应仔细阅读本《用户协议》(以下简称“本协议”)。用户一旦登录或使用技术开发方的服务,即视为用户已了解并明示同意本协议各项内容,本协议立即在用户与本技术开发方之间产生法律效力。用户登录、使用本产品服务的全部活动将受到本协议的约束并承担相应的责任和义务。如用户不同意本协议任何内容的,请用户立即停止使用技术开发方所提供的全部服务。 根据《中华人民共和国网络安全法》、《电信和互联网用户个人信息保护规定》及相关法律法规的规定,同时依据技术开发方与其合作伙伴之间的相关协议,用户必须已明示授权技术开发方合作伙伴(以下简称“合作伙伴”)、在此明示授权并委托技术开发方及其关联公司通过官方或相关实名认证平台、信用信息平台(包括但不限于:征信机构、银行信用信息平台、网络借贷平台、消费金融平台、第三方支付平台、公积金平台、投资理财平台等)及其它相关平台查询、验证、存储用户的个人信用信息,并输出给合作伙伴对用户的个人信用进行评估与参考使用。用户理解并同意,具体的授权查询、验证、存储及输出的内容以合作伙伴要求查询、验证、存储、输出以及技术开发方及其关联公司实际查询、验证、存储、输出的信息为准。技术开发方及其关联公司会在授权范围内对相关个人信息予以处理(包括但不限于为保护用户个人信息而加密处理、掩码处理等一切为实现相关协议目的而进行的所有必要处理)并仅提供给合作伙伴使用,但用户与合作伙伴之间因授权的有效性、授权内容、授权范围、授权期限等发生的争议纠纷与技术开发方无关。如用户对合作伙伴的上述授权事项有任何异议或争议的,应立即停止使用技术开发方所提供的全部服务。用户使用本服务的,即表明用户已明示对合作伙伴、技术开发方及其关联公司授权查询、验证、处理、存储、在约定范围内使用其个人信息,并对授权的效力、查询验证的内容、查询验证平台、处理方式、使用范围等相关事项无任何事实或法律上的异议或争议。 鉴于用户须授权合作伙伴并由该合作伙伴告知本服务后方能进入、登录并使用本服务,用户登录或使用本服务时起即视为用户与技术开发方的合作伙伴之间已存在合法的、充分的、必要的、不可撤销的授权,且用户已清楚知晓其授权提供相关信息可能对其造成的相关不利影响,如负面的信用评价等。为保护用户个人信息,技术开发方会采取合理措施对用户信息进行严格保密,同时督促并要求该特定合作伙伴进行严格保密。未经用户授权,技术开发方及其关联公司不会将用户信息提供给任何其他方。

一、协议主体

本协议是用户与技术开发方关于用户使用本服务所订立的协议。

二、关于本服务


    1. 本服务内容是指技术开发方通过本应用程序向其合作伙伴及用户提供的相关服务(简称“本服务”)。


    1. 对用户使用的本服务,技术开发方会不断丰富用户使用本服务的终端、形式等。


    1. 许可的范围:
      -(1)技术开发方授予用户一项个人的、不可转让及非排他性的许可,以使用本应用程序。
      -(2)本条及本协议其他条款未明示授权的其他一切知识产权权利仍由技术开发方保留。技术开发方如果未行使前述任何权利,并不构成对该权利的放弃。

三、账号登录

为使用本应用程序用户可能需要输入个人信息进行登录与使用。 用户清楚知晓,其向技术开发方提供的账户仅限本人使用,否则,用户可能会对用户或他人造成侵权。用户承诺并同意,使用同一设备、同一身份证号或账号使用本协议项下服务的,均视为用户本人的行为。用户应妥善保管自身设备、身份证件及账号密码信息,审慎交由他人使用或使用他人设备、身份证件或账户信息,如用户违反本约定给用户或他人造成损失的,技术开发方不应也不会承担任何法律责任。用户若因此给技术开发方造成损失的,应承担技术开发方所遭受的全部损失。

四、应用程序的使用

如果用户从非技术开发方合作伙伴的应用程序或非技术开发方合作伙伴处获取本应用程序或与本应用程序名称相同的安装程序,技术开发方无法保证该应用程序能够正常使用,并对因此给用户造成的损失不予负责。

五、应用程序的更新

  1. 为了增进用户体验、完善服务内容,技术开发方将不断努力为用户时时提供应用程序更新(这些更新可能会采取应用程序替换、修改、功能强化、版本升级等形式)。

  2. 为了改善用户体验,并保证服务的安全性和功能的一致性,技术开发方有权不经向用户特别通知而对应用程序进行更新,或者对应用程序的部分功能效果进行改变或限制。

六、用户个人信息保护


    1. 保护用户个人信息是技术开发方的一项基本原则,技术开发方将会采取合理的措施保护用户的个人信息。除法律法规规定及用户授权的情形外,未经用户许可技术开发方不会向任何第三方公开、透露用户个人信息。


    1. 用户在登录账号或使用本服务的过程中,可能需要填写一些必要的信息。若用户填写的信息不真实或不完整,则可能无法正常使用本服务。


    1. 一般情况下,用户可随时浏览、修改自己提交的信息,但出于安全性和身份识别的考虑,用户可能无法修改注册时提供的初始注册信息及其他验证信息。


    1. 技术开发方将运用各种安全技术和程序建立完善的管理制度来保护用户的个人信息,以免遭受未经授权的访问、使用或披露。

七、授权事项及行为规范


    1. 授权事项
      -(1)用户充分理解并同意:用户在使用本服务时,可能需要使用用户终端设备的相关权限、接口及相关设备信息等才能实现相应的功能。
      -(2)用户可以选择不向技术开发方提供用户的某些信息,但因此可能会导致相关服务功能无法实现。
      -(3)为实现本协议目的为合作伙伴及用户提供更加优质、安全的服务,用户同意并明示授权技术开发方及其关联公司对用户的相关个人信息进行查询、验证、存储、处理并在约定范围内使用(提供给用户已授权的合作伙伴对用户进行信用评估及参考使用)。技术开发方及其关联公司对用户的个人信息进行严格保密。本协议项下的授权为不可撤销的授权。
      -(4)用户知晓并明示授权同意技术开发方及其关联公司依据相关法律法规的规定,受合作伙伴委托向第三方征信机构或数据机构等合法查询、验证、审核用户信息,上述信息包括但不限于个人基本信息、特征信息(包括但不限于用户的法院失信信息、网络失信信息、是否为羊毛党信息、是否曾使用通讯小号及可疑设备信息等)、关联信息(即用户的身份证信息、手机号、手机设备及银行卡之间的关联关系,以判断用户信息是否有异常,该关联关系不涉及具体的个人敏感信息)、借贷交易信息、网络投资理财信息、公积金信息、公用事业信息、央行征信报告、个人网络数据信息等合作伙伴需要验证或参考使用的相关用户信息。技术开发方具体查询、验证及审核的信息最终以合作伙伴需要验证、需要参考使用及实际验证与使用的信息为准。技术开发方对所获取的信息,仅在用户与合作伙伴之间有关个人信用信息评估等合作伙伴业务相关工作中使用。技术开发方及其关联公司将对所获取的信息向该合作伙伴进行提供,除此之外,未经用户授权,技术开发方及其关联公司不得也不会向其他机构或个人泄露、披露或提供用户的信息


    1. 用户禁止行为除非法律允许或技术开发方书面许可,用户不得从事下列行为:
      -(1)删除本应用程序及其副本上关于著作权的信息。
      -(2)对本应用程序进行反向工程、反向汇编、反向编译,或者以其他方式尝试发现本应用程序的源代码。
      -(3)对技术开发方拥有知识产权的内容进行使用、出租、出借、复制、修改、链接、转载、汇编、发表、出版等。
      -(4)通过修改或伪造应用程序运行中的指令、数据,增加、删减、变动应用程序的功能或运行效果,或者将用于上述用途的应用程序、方法进行运营或向公众传播,无论这些行为是否为商业目的。
      -(5)自行、授权他人或利用第三方应用程序对本应用程序及其组件、模块、数据等进行干扰。
      -(6)其他未经技术开发方明示授权的行为。

  1. 对自己行为负责用户充分了解并同意,用户必须为自己对合作伙伴的授权(包括但不限于授权方式、授权内容及授权期限等)以及其账户下的相关行为负责。技术开发方会督促合作伙伴获取用户的授权后方能对相关信息进行查询、验证或使用并要求合作伙伴对用户的信息进行严格保密,但用户应对使用本服务时接触到的内容自行加以判断,如对授权相关事项及信息安全有任何异议或争议的,应立即停止使用本服务。技术开发方无法且不会对用户与合作伙伴之间的任何争议或纠纷而承担责任,用户未按约定要求立即停止使用本服务的,技术开发方对非因技术开发方的原因而产生的任何风险或损失将不承担任何责任。

八、知识产权声明


    1. 技术开发方是本应用程序的知识产权权利人。本应用程序的著作权、商标权、专利权、商业秘密等知识产权,以及与本应用程序相关的所有信息内容(包括但不限于文字、图片、音频、视频、图表、界面设计、版面框架、有关数据或电子文档等)均受中华人民共和国法律法规和相应的国际条约保护,技术开发方依法享有上述相关知识产权,但相关权利人依照法律规定应享有的权利除外。


    1. 未经技术开发方或相关权利人书面同意,用户不得为任何商业或非商业目的自行或许可任何第三方实施、利用、转让上述知识产权。

九、终端安全责任


    1. 用户理解并同意,本应用程序或本服务同大多数互联网应用程序、服务一样,可能会受多种因素影响(包括但不限于用户原因、网络服务质量、社会环境等);也可能会受各种安全问题的侵扰(包括但不限于他人非法利用用户资料,进行现实中的骚扰;用户下载安装的其他应用程序或访问的其他网站中可能含有病毒、木马程序或其他恶意程序,威胁用户终端的信息和数据的安全,继而影响本应用程序、本服务的正常使用等)。因此,用户应加强信息安全及个人信息的保护意识,注意密码保护,以免遭受损失。出现上述情况时技术开发方将努力在第一时间与相关方配合,及时进行修复,但是由此给用户造成的损失技术开发方在法律允许的范围内免责。


    1. 用户不得制作、发布、使用、传播用于窃取技术开发方账号及他人个人信息、财产的恶意程序。


    1. 维护应用程序安全与正常使用是技术开发方和用户的共同责任,技术开发方将按照行业标准合理审慎地采取必要技术措施保护用户的终端信息和数据安全。


    1. 在法律允许的范围内,技术开发方对以下情形导致的服务中断或受阻不承担责任:
      -(1)受到计算机病毒、木马或其他恶意程序、黑客攻击的破坏。
      -(2)用户或技术开发方的电脑软件、系统、硬件和通信线路出现故障。
      -(3)用户操作不当。
      -(4)用户通过非技术开发方授权的方式使用本服务。
      -(5)其他技术开发方无法控制或合理预见的情形。

十、不可抗力及合理免责

“不可抗力”是指在本协议签订后发生的、受影响一方无法预见、无法避免并无法克服的客观情况。此等事件包括但不限于水灾、火灾、旱灾、台风、地震及其它自然灾害、罢工、骚动、暴乱及战争以及政府部门的作为或不作为、法律法规或政策调整、数据来源变更(包括但不限于其服务内容及形式的变更)、国内数据渠道瘫痪、黑客攻击、计算机病毒侵入、新型病毒爆发、因电信运营商问题导致网络中断服务器不可访问、停电、系统故障、传输线路、通信故障等技术开发方无法控制的因素。因受不可抗力影响而不能履行或不能完全履行本协议的不视为违约,不应承担相应违约责任 。

十一、其他


    1. 用户使用本应用程序或本服务即视为用户已阅读并同意受本协议的约束。技术开发方有权在必要时修改本协议条款。用户可以在本应用程序、本服务的最新版本中查阅相关协议条款。本协议条款变更后,如果用户继续登录、使用本应用程序、本服务,即视为用户已接受修改后的协议。如果用户不接受修改后的协议,应当停止使用本应用程序。


    1. 本协议的成立、生效、履行、解释及纠纷解决,适用中华人民共和国大陆地区法律(不包括冲突法)。


    1. 若用户和技术开发方之间发生任何纠纷或争议,首先应友好协商解决;协商不成的,用户同意将纠纷或争议提交被告方所在地人民法院管辖。


    1. 本协议所有条款的标题仅为阅读方便,本身并无实际涵义,不能作为本协议涵义解释的依据。5. 本协议条款无论因何种原因部分无效或不可执行,其余条款仍有效,对双方具有约束力。




''', + richText: ''' + + + + + Document + + +

用户协议

+

重庆智学力人工智能科技有限公司(以下简称“我们”)依据本协议为用户(以下简称“你”)提供学而有道阅卷服务。本协议对你和我们均具有法律约束力。

+

一、本服务的功能

+

你可以使用本服务网络阅卷。

+

二、责任范围及限制

+

你使用本服务得到的结果仅供参考,实际情况以官方为准。

+

三、隐私保护

+

我们重视对你隐私的保护,你的个人隐私信息将根据《隐私政策》受到保护与规范,详情请参阅《隐私政策》。

+

四、其他条款

+

4.1 本协议所有条款的标题仅为阅读方便,本身并无实际涵义,不能作为本协议涵义解释的依据。

+

4.2 本协议条款无论因何种原因部分无效或不可执行,其余条款仍有效,对双方具有约束力。

+ + ''', ) }; diff --git a/marking_app/lib/utils/fast_data.dart b/marking_app/lib/utils/fast_data.dart index 93bb949..80f427e 100644 --- a/marking_app/lib/utils/fast_data.dart +++ b/marking_app/lib/utils/fast_data.dart @@ -41,6 +41,7 @@ class FastData { static const String _INPUT_KEYBOARD_GUIDE_PAGE_WORK = "APP:MARKING:GUIDE_PAGE:WORK"; // 系统协议确认 static const String _SYS_PROTOCOL = "APP:SYS:PROTOCOL"; + static const String _SYS_PROTOCOL_SHOW = "APP:SYS:PROTOCOL_SHOW"; static SharedPreferences? _prefs; @@ -286,4 +287,19 @@ class FastData { SharedPreferences thePrefs = await getSharedInstance(); thePrefs.remove(_SYS_PROTOCOL); } + + Future setSysProtocolShow(bool val) async { + SharedPreferences thePrefs = await getSharedInstance(); + return await thePrefs.setBool(_SYS_PROTOCOL_SHOW, val); + } + + Future getSysProtocolShow([SharedPreferences? thePrefs]) async { + if (thePrefs == null) thePrefs = await getSharedInstance(); + return thePrefs.getBool(_SYS_PROTOCOL_SHOW); + } + + void cleanSysProtocolShow() async { + SharedPreferences thePrefs = await getSharedInstance(); + thePrefs.remove(_SYS_PROTOCOL_SHOW); + } } diff --git a/marking_app/lib/utils/sys_protocol.dart b/marking_app/lib/utils/sys_protocol.dart index 50891c3..f1c00c2 100644 --- a/marking_app/lib/utils/sys_protocol.dart +++ b/marking_app/lib/utils/sys_protocol.dart @@ -74,6 +74,7 @@ class Protocol extends Dialog { ], ), ), + SizedBox(height: 10.h), Row( children: [ Expanded( @@ -122,17 +123,25 @@ class Protocol extends Dialog { } /// 系统协议 -void sysProtocol(BuildContext context) async { +Future sysProtocol(BuildContext context) async { bool? _sysProtocol = await FastData.getInstance().getSysProtocol(); if (_sysProtocol == null || !_sysProtocol) { print('进来这里....'); - - showDialog( - context: context, - barrierDismissible: false, - builder: (ctx) { - return Protocol(ctx); - }, - ); + bool? _sysProtocolShow = await FastData.getInstance().getSysProtocolShow(); + if (_sysProtocolShow != true) { + try { + await FastData.getInstance().setSysProtocolShow(true); + return showDialog( + context: context, + barrierDismissible: false, + // useRootNavigator: false, + builder: (ctx) => Protocol(ctx), + ); + } catch (e) { + FastData.getInstance().cleanSysProtocol(); + } finally { + FastData.getInstance().cleanSysProtocolShow(); + } + } } }