yuanfeiyang2_wd

desc:app启动页

  1 +export class GlobalContext {
  2 + private constructor() { }
  3 + private static instance: GlobalContext;
  4 + private _objects = new Map<string, Object>();
  5 +
  6 + public static getContext(): GlobalContext {
  7 + if (!GlobalContext.instance) {
  8 + GlobalContext.instance = new GlobalContext();
  9 + }
  10 + return GlobalContext.instance;
  11 + }
  12 +
  13 + getObject(value: string): Object | undefined {
  14 + return this._objects.get(value);
  15 + }
  16 +
  17 + setObject(key: string, objectClass: Object): void {
  18 + this._objects.set(key, objectClass);
  19 + }
  20 +}
@@ -16,7 +16,7 @@ export default class EntryAbility extends UIAbility { @@ -16,7 +16,7 @@ export default class EntryAbility extends UIAbility {
16 // Main window is created, set main page for this ability 16 // Main window is created, set main page for this ability
17 hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); 17 hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
18 18
19 - windowStage.loadContent('pages/MainPage', (err, data) => { 19 + windowStage.loadContent('pages/LaunchPage', (err, data) => {
20 if (err.code) { 20 if (err.code) {
21 hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); 21 hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
22 return; 22 return;
  1 +import router from '@ohos.router'
  2 +
  3 +@Entry
  4 +@Component
  5 +struct LaunchAdvertisingPage {
  6 + @State time: number = 4
  7 + timer :number = -1
  8 +
  9 + enter() {
  10 + router.replaceUrl({
  11 + url:'pages/MainPage'
  12 + })
  13 + }
  14 +
  15 + onPageShow(){
  16 + this.timer = setInterval(() => {
  17 + this.time--
  18 + if (this.time < 1) {
  19 + this.enter()
  20 + clearInterval(this.timer)
  21 + }
  22 + },1000)
  23 +
  24 + }
  25 +
  26 + build(){
  27 + Column(){
  28 + Stack({alignContent:Alignment.Bottom}){
  29 +
  30 + Stack({alignContent:Alignment.Bottom}){
  31 + Column(){
  32 + Image($r('app.media.app_icon'))
  33 + .margin({
  34 + top:'128lpx',left:'48lpx',right:'48lpx',bottom:'128lpx'
  35 + })
  36 + }
  37 + .justifyContent(FlexAlign.Center)
  38 + .width('100%')
  39 + .height('100%')
  40 + .margin({
  41 + bottom: 0
  42 + })
  43 +
  44 + Stack({alignContent:Alignment.TopEnd}){
  45 + Button(){
  46 + Text(this.time + 's 跳过')
  47 + .fontSize('27lpx')
  48 + .fontColor(Color.White)
  49 + .margin({left:'28lpx',right:'28lpx'})
  50 +
  51 + }
  52 + .width('148lpx')
  53 + .height('56lpx')
  54 + .margin({top:'54lpx',right:'19lpx'})
  55 + .backgroundColor('#80000000')
  56 + .onClick(() => {
  57 + this.enter()
  58 + })
  59 + }
  60 + .width('100%')
  61 + .height('100%')
  62 +
  63 + Button(){
  64 + Row(){
  65 + Text('点击跳转至详情或第三方应用')
  66 + .fontSize('31lpx')
  67 + .fontColor(Color.White)
  68 + .margin({
  69 + left:'55lpx'
  70 + })
  71 + Image($r('app.media.Slice'))
  72 + .width('46lpx')
  73 + .height('46lpx')
  74 + .margin({right:'55lpx'})
  75 + }.alignItems(VerticalAlign.Center)
  76 + }
  77 + .width('566lpx')
  78 + .height('111lpx')
  79 + .margin({
  80 + bottom: '51lpx'
  81 + })
  82 + .backgroundColor('#80000000')
  83 +
  84 + }
  85 +
  86 + }
  87 + .width('100%')
  88 + .height('84%')
  89 + .backgroundColor('#FF6C75')
  90 + .margin({top:'0'})
  91 +
  92 + Image($r('app.media.LaunchPage_logo'))
  93 + .width('278lpx')
  94 + .height('154lpx')
  95 + .margin({bottom: '48lpx'})
  96 + }
  97 + .width('100%')
  98 + .height('100%')
  99 + .backgroundColor(Color.White)
  100 +
  101 + }
  102 +
  103 +
  104 +
  105 +
  106 +}
  1 +import media from '@ohos.multimedia.media'
  2 +import App from '@system.app'
  3 +import Router from '@system.router'
  4 +import router from '@ohos.router'
  5 +import common from '@ohos.app.ability.common'
  6 +import CustomDialogComponent from '../view/CustomDialogComponent'
  7 +import preferences from '@ohos.data.preferences'
  8 +import { GlobalContext } from '../common/utils/GlobalContext'
  9 +
  10 +@Entry
  11 +@Component
  12 +struct LaunchPage {
  13 + private context?: common.UIAbilityContext;
  14 + private timerId: number = 0;
  15 + private isJumpToAdvertising: boolean = false;
  16 +
  17 + dialogController: CustomDialogController = new CustomDialogController({
  18 + builder: CustomDialogComponent(
  19 + {
  20 + cancel: () => {
  21 + this.onCancel();
  22 + },
  23 + confirm: () => {
  24 + this.onConfirm();
  25 + }
  26 + }),
  27 + alignment: DialogAlignment.Center,
  28 + offset: { dx: 0, dy: '-24' },
  29 + customStyle: true,
  30 + autoCancel: false
  31 + });
  32 +
  33 + onCancel() {
  34 + // Exit the application.
  35 + this.context?.terminateSelf();
  36 + }
  37 +
  38 + onConfirm() {
  39 + // Save privacy agreement status.
  40 + this.saveIsPrivacy();
  41 + this.jumpToAdvertisingPage();
  42 + }
  43 +
  44 + jumpToAdvertisingPage() {
  45 + this.timerId = setTimeout(() => {
  46 + this.isJumpToAdvertising = true;
  47 + router.pushUrl({
  48 + url: 'pages/LaunchAdvertisingPage'
  49 + }).catch((error: Error) => {
  50 + //Logger.error(CommonConstants.LAUNCHER_PAGE_TAG, 'LauncherPage pushUrl error ' + JSON.stringify(error));
  51 + });
  52 + }, 1000);
  53 + }
  54 +
  55 + onPageShow() {
  56 + this.context = getContext(this) as common.UIAbilityContext;
  57 + // Get the operation class for saving data.
  58 + this.getDataPreferences(this).then((preferences: preferences.Preferences) => {
  59 + preferences.get('isPrivacy', true).then((value: preferences.ValueType) => {
  60 + //Logger.info(CommonConstants.LAUNCHER_PAGE_TAG, 'onPageShow value: ' + value);
  61 + if (value) {
  62 + // let isJumpPrivacy: boolean = globalThis.isJumpPrivacy ?? false;
  63 + // let isJumpPrivacy: boolean = (GlobalContext.getContext().getObject('isJumpPrivacy') as boolean) ?? false;
  64 + // if (!isJumpPrivacy) {
  65 + this.dialogController.open();
  66 + // }
  67 + } else {
  68 + this.jumpToAdvertisingPage();
  69 + }
  70 + });
  71 + });
  72 + }
  73 +
  74 + onPageHide() {
  75 + if (this.isJumpToAdvertising) {
  76 + router.clear();
  77 + }
  78 + // globalThis.isJumpPrivacy = true;
  79 + //GlobalContext.getContext().setObject('isJumpPrivacy', true);
  80 + clearTimeout(this.timerId);
  81 + }
  82 +
  83 + getDataPreferences(common: Object) {
  84 + return preferences.getPreferences(getContext(common), 'myStore');
  85 + }
  86 +
  87 + saveIsPrivacy() {
  88 + let preferences: Promise<preferences.Preferences> = this.getDataPreferences(this);
  89 + preferences.then((result: preferences.Preferences) => {
  90 + let privacyPut = result.put('isPrivacy', false);
  91 + result.flush();
  92 + privacyPut.then(() => {
  93 + //Logger.info('LauncherPage', 'Put the value of startup Successfully.');
  94 + }).catch((err: Error) => {
  95 + //Logger.error('LauncherPage', 'Put the value of startup Failed, err: ' + err);
  96 + });
  97 + }).catch((err: Error) => {
  98 + //Logger.error('LauncherPage', 'Get the preferences Failed, err: ' + err);
  99 + });
  100 + }
  101 +
  102 +
  103 +
  104 + build(){
  105 +
  106 + Stack({alignContent:Alignment.Bottom}){
  107 + Image($r('app.media.LaunchPage_logo'))
  108 + .width('278lpx')
  109 + .height('154lpx')
  110 + .margin({
  111 + bottom:'48lpx'
  112 + })
  113 +
  114 + }
  115 + .width('100%')
  116 + .height('100%')
  117 + .backgroundColor(Color.White)
  118 +
  119 +
  120 + }
  121 +
  122 +
  123 +
  124 +}
  1 +
  2 +import webview from '@ohos.web.webview';
  3 +import router from '@ohos.router';
  4 +import { GlobalContext } from '../common/utils/GlobalContext'
  5 +
  6 +@Entry
  7 +@Component
  8 +struct PrivacyPage {
  9 + @State message: string = 'Hello World'
  10 + webController: webview.WebviewController = new webview.WebviewController();
  11 + //@State params: object = router.getParams();
  12 +
  13 + build() {
  14 + Row() {
  15 + Column() {
  16 + // Web component loading H5.
  17 + Web({ src: 'https://www.baidu.com', controller: this.webController })
  18 + .zoomAccess(false)
  19 + .width('100%')
  20 + .height('100%')
  21 + .aspectRatio(1)
  22 + // .onConfirm((event) => {
  23 + // AlertDialog.show({
  24 + // message: Const.WEB_ALERT_DIALOG_TEXT_VALUE + event?.message,
  25 + // confirm: {
  26 + // value: $r('app.string.web_alert_dialog_button_value'),
  27 + // action: () => {
  28 + // event?.result.handleConfirm();
  29 + // }
  30 + // },
  31 + // cancel: () => {
  32 + // event?.result.handleCancel();
  33 + // }
  34 + // });
  35 + // return true;
  36 + // })
  37 + // .onErrorReceive((event) => {
  38 + // if (event?.error.getErrorInfo() === 'ERR_INTERNET_DISCONNECTED') {
  39 + // prompt.showToast({
  40 + // message: $r('app.string.internet_err'),
  41 + // duration: Const.WebConstant_DURATION
  42 + // })
  43 + // }
  44 + // if (event?.error.getErrorInfo() === 'ERR_CONNECTION_TIMED_OUT') {
  45 + // prompt.showToast({
  46 + // message: $r('app.string.internet_err'),
  47 + // duration: Const.WebConstant_DURATION
  48 + // })
  49 + // }
  50 + // })
  51 + // .onProgressChange((event) => {
  52 + // if (event?.newProgress === Const.WebConstant_PROGRESS_MAX) {
  53 + // this.isLoading = false;
  54 + // clearInterval(this.intervalLoading);
  55 + // this.intervalLoading = -1;
  56 + // }
  57 + // })
  58 + }
  59 + .width('100%')
  60 + }
  61 + .height('100%')
  62 + }
  63 +}
  1 +import router from '@ohos.router';
  2 +import { GlobalContext } from '../common/utils/GlobalContext'
  3 +import { NavigatorModel } from '../viewModel/NavigatorModel';
  4 +
  5 +@CustomDialog
  6 +export default struct CustomDialogComponent {
  7 +
  8 + controller: CustomDialogController = new CustomDialogController({'builder': ''})
  9 + cancel: Function = () => {}
  10 + confirm: Function = () => {}
  11 +
  12 +
  13 + build(){
  14 + Column(){
  15 + Text($r('app.string.dialog_text_title'))
  16 + .width("90%")
  17 + .fontColor($r('app.color.dialog_text_color'))
  18 + .fontSize($r('app.float.dialog_text_privacy_size'))
  19 + .textAlign(TextAlign.Center)
  20 + .fontWeight('600')
  21 + .margin({
  22 + top: $r('app.float.dialog_text_privacy_top'),
  23 + bottom: $r('app.float.dialog_text_privacy_bottom')
  24 + })
  25 + Text($r('app.string.dialog_text_privacy_content'))
  26 + .fontSize($r('app.float.dialog_common_text_size'))
  27 + .width('90%')
  28 + Row(){
  29 +
  30 + // Button(){
  31 + // Text($r('app.string.privacy_text_title_policy'))
  32 + // .fontSize('27lpx')
  33 + // .fontColor(Color.Red)
  34 + // .margin({left:'10lpx',right:'10lpx'})
  35 + // }
  36 + // .width('90%')
  37 + // .height('56lpx')
  38 + // .margin({top:'54lpx',right:'19lpx'})
  39 + // .backgroundColor('#80000000')
  40 + // .onClick(() => {
  41 + //
  42 + // })
  43 + // Button(){
  44 + // Text($r('app.string.privacy_text_title_protocol'))
  45 + // .fontSize('27lpx')
  46 + // .fontColor(Color.Red)
  47 + // .margin({left:'10lpx',right:'10lpx'})
  48 + // }
  49 + // .width('90%')
  50 + // .height('56lpx')
  51 + // .margin({top:'54lpx',right:'19lpx'})
  52 + // .backgroundColor('#80000000')
  53 + // .onClick(() => {
  54 + //
  55 + // })
  56 +
  57 + // Navigator({ target: 'pages/PrivacyPage', type: NavigationType.Push }) {
  58 + // Button($r('app.string.privacy_text_title_policy'))
  59 + // .onClick(()=>{
  60 + // GlobalContext.getContext().setObject('isJumpPrivacy', true);
  61 + // })
  62 + // {
  63 + // // Text($r('app.string.privacy_text_title_policy'))
  64 + // // .fontSize($r('app.float.dialog_common_text_size'))
  65 + // // .width('50%')
  66 + // // .fontColor(Color.Red)
  67 + // // .onClick(() => {
  68 + // // GlobalContext.getContext().setObject('isJumpPrivacy', true);
  69 + // // })
  70 + // }
  71 + // .fancy(Const.MainConstant_BUTTON_MARGIN_TOP)
  72 + // }
  73 + // .params({ path: 'https://www.baidu.com', tips: '在线' } as NavigatorModel)
  74 +
  75 + Text($r('app.string.privacy_text_title_policy'))
  76 + .fontSize($r('app.float.dialog_common_text_size'))
  77 + .width('40%')
  78 + .fontColor(Color.Red)
  79 + .onClick(() => {
  80 + //GlobalContext.getContext().setObject('isJumpPrivacy', false);
  81 + router.pushUrl({
  82 + url: 'pages/PrivacyPage'
  83 + }).catch((error: Error) => {
  84 + //Logger.error(CommonConstants.CUSTOM_DIALOG_TAG, 'CustomDialog pushUrl error ' + JSON.stringify(error));
  85 + });
  86 + })
  87 + Text($r('app.string.privacy_text_title_protocol'))
  88 + .fontSize($r('app.float.dialog_common_text_size'))
  89 + .width('40%')
  90 + .fontColor(Color.Red)
  91 + .onClick(() => {
  92 + //GlobalContext.getContext().setObject('isJumpPrivacy', true);
  93 + router.pushUrl({
  94 + url: 'pages/PrivacyPage'
  95 + }).catch((error: Error) => {
  96 + //Logger.error(CommonConstants.CUSTOM_DIALOG_TAG, 'CustomDialog pushUrl error ' + JSON.stringify(error));
  97 + });
  98 + })
  99 + }
  100 + Text($r('app.string.dialog_text_privacy_statement'))
  101 + .width('90%')
  102 + .fontColor($r('app.color.dialog_text_statement_color'))
  103 + .fontSize($r('app.float.dialog_common_text_size'))
  104 + Row() {
  105 + Text($r('app.string.dialog_button_disagree'))
  106 + .fancy()
  107 + .onClick(() => {
  108 + this.controller.close();
  109 + this.cancel();
  110 + })
  111 + Blank()
  112 + .backgroundColor($r('app.color.dialog_blank_background_color'))
  113 + .width($r('app.float.dialog_blank_width'))
  114 + .height($r('app.float.dialog_blank_height'))
  115 + Text($r('app.string.dialog_button_agree'))
  116 + .fancy()
  117 + .onClick(() => {
  118 + this.controller.close();
  119 + this.confirm();
  120 + })
  121 + }
  122 + .margin({ bottom: '1' })
  123 +
  124 + }
  125 + .width('93%')
  126 + .borderRadius('15')
  127 + .backgroundColor(Color.White)
  128 +
  129 + }
  130 +
  131 +
  132 +
  133 +}
  134 +// Common text styles.
  135 +@Extend(Text) function fancy () {
  136 + .fontColor($r("app.color.dialog_fancy_text_color"))
  137 + .fontSize($r("app.float.dialog_fancy_text_size"))
  138 + .textAlign(TextAlign.Center)
  139 + .fontWeight(FontWeight.Medium)
  140 + .layoutWeight('1')
  141 +}
  1 +/**
  2 + * NewsData params info.
  3 + */
  4 +export class NavigatorModel {
  5 + /**
  6 + * Jumping Path.
  7 + */
  8 + path: Resource | string = '';
  9 +
  10 + /**
  11 + * Prompt message.
  12 + */
  13 + tips: Resource | string = '';
  14 +}
@@ -7,6 +7,46 @@ @@ -7,6 +7,46 @@
7 { 7 {
8 "name": "color_F9F9F9", 8 "name": "color_F9F9F9",
9 "value": "#F9F9F9" 9 "value": "#F9F9F9"
  10 + },
  11 + {
  12 + "name": "privacy_back_text",
  13 + "value": "#007DFF"
  14 + },
  15 + {
  16 + "name": "launcher_text_title_color",
  17 + "value": "#182431"
  18 + },
  19 + {
  20 + "name": "launcher_text_introduce_color",
  21 + "value": "#182431"
  22 + },
  23 + {
  24 + "name": "advertising_text_title_color",
  25 + "value": "#182431"
  26 + },
  27 + {
  28 + "name": "advertising_text_background_color",
  29 + "value": "#33000000"
  30 + },
  31 + {
  32 + "name": "home_page_text_color",
  33 + "value": "#14224D"
  34 + },
  35 + {
  36 + "name": "dialog_fancy_text_color",
  37 + "value": "#007DFF"
  38 + },
  39 + {
  40 + "name": "dialog_text_color",
  41 + "value": "#182431"
  42 + },
  43 + {
  44 + "name": "dialog_blank_background_color",
  45 + "value": "#F5F5F5"
  46 + },
  47 + {
  48 + "name": "dialog_text_statement_color",
  49 + "value": "#007DFF"
10 } 50 }
11 ] 51 ]
12 -}  
  52 +}
  1 +{
  2 + "float": [
  3 + {
  4 + "name": "float_1",
  5 + "value": "30.6"
  6 + },
  7 + {
  8 + "name": "launcher_logo_size",
  9 + "value": "119vp"
  10 + },
  11 + {
  12 + "name": "launcher_life_text_width",
  13 + "value": "105vp"
  14 + },
  15 + {
  16 + "name": "launcher_life_text_height",
  17 + "value": "35vp"
  18 + },
  19 + {
  20 + "name": "launcher_text_title_size",
  21 + "value": "26fp"
  22 + },
  23 + {
  24 + "name": "launcher_text_introduce_size",
  25 + "value": "16fp"
  26 + },
  27 + {
  28 + "name": "launcher_text_opacity",
  29 + "value": "0.6"
  30 + },
  31 + {
  32 + "name": "advertising_text_opacity",
  33 + "value": "0.4"
  34 + },
  35 + {
  36 + "name": "advertising_image_width",
  37 + "value": "54vp"
  38 + },
  39 + {
  40 + "name": "advertising_image_height",
  41 + "value": "54vp"
  42 + },
  43 + {
  44 + "name": "advertising_text_font_size",
  45 + "value": "12fp"
  46 + },
  47 + {
  48 + "name": "advertising_text_introduce_size",
  49 + "value": "16fp"
  50 + },
  51 + {
  52 + "name": "advertising_text_title_size",
  53 + "value": "26fp"
  54 + },
  55 + {
  56 + "name": "advertising_text_border_width",
  57 + "value": "1"
  58 + },
  59 + {
  60 + "name": "advertising_title_text_margin_top",
  61 + "value": "30vp"
  62 + },
  63 + {
  64 + "name": "advertising_title_text_margin_left",
  65 + "value": "260vp"
  66 + },
  67 + {
  68 + "name": "advertising_text_padding_top",
  69 + "value": "8vp"
  70 + },
  71 + {
  72 + "name": "advertising_text_padding_bottom",
  73 + "value": "8vp"
  74 + },
  75 + {
  76 + "name": "advertising_text_padding_left",
  77 + "value": "12vp"
  78 + },
  79 + {
  80 + "name": "advertising_text_padding_right",
  81 + "value": "12vp"
  82 + },
  83 + {
  84 + "name": "advertising_text_radius",
  85 + "value": "18vp"
  86 + },
  87 + {
  88 + "name": "dialog_blank_height",
  89 + "value": "32vp"
  90 + },
  91 + {
  92 + "name": "dialog_blank_width",
  93 + "value": "1vp"
  94 + },
  95 + {
  96 + "name": "dialog_common_text_size",
  97 + "value": "18fp"
  98 + },
  99 + {
  100 + "name": "dialog_text_privacy_size",
  101 + "value": "20fp"
  102 + },
  103 + {
  104 + "name": "dialog_fancy_text_size",
  105 + "value": "16fp"
  106 + },
  107 + {
  108 + "name": "dialog_text_privacy_bottom",
  109 + "value": "12vp"
  110 + },
  111 + {
  112 + "name": "dialog_text_privacy_top",
  113 + "value": "24vp"
  114 + },
  115 + {
  116 + "name": "dialog_text_declaration_bottom",
  117 + "value": "24"
  118 + },
  119 + {
  120 + "name": "dialog_text_opacity",
  121 + "value": "0.6"
  122 + },
  123 + {
  124 + "name": "privacy_text_title_size",
  125 + "value": "20fp"
  126 + },
  127 + {
  128 + "name": "privacy_back_text_size",
  129 + "value": "20fp"
  130 + },
  131 + {
  132 + "name": "privacy_text_margin_top",
  133 + "value": "10"
  134 + },
  135 + {
  136 + "name": "privacy_text_margin_bottom",
  137 + "value": "10"
  138 + },
  139 + {
  140 + "name": "privacy_bottom_text_margin",
  141 + "value": "12"
  142 + },
  143 + {
  144 + "name": "privacy_text_content_left",
  145 + "value": "24"
  146 + },
  147 + {
  148 + "name": "privacy_text_content_right",
  149 + "value": "24"
  150 + },
  151 + {
  152 + "name": "home_page_text_size",
  153 + "value": "30vp"
  154 + }
  155 + ]
  156 +}
@@ -11,6 +11,41 @@ @@ -11,6 +11,41 @@
11 { 11 {
12 "name": "EntryAbility_label", 12 "name": "EntryAbility_label",
13 "value": "$string:app_name" 13 "value": "$string:app_name"
  14 + },
  15 + {
  16 + "name": "dialog_text_title",
  17 + "value": "个人隐私保护指引"
  18 + },
  19 + {
  20 + "name": "dialog_text_subTitle",
  21 + "value": "欢迎您使用人民日报客户端!"
  22 + },
  23 + {
  24 + "name": "dialog_text_privacy_content",
  25 + "value": "为了更好地为您提供阅读新闻、发布评论等相关服务,我们会根据您使用服务的具体功能需要,收集必要的用户信息。您可通过阅读《隐私政策》和《用户协议》了解我们收集、使用、存储和共享个人信息的情况,以及对您个人隐私的保护措施。人民日报客户端深知个人信息对您的重要性,我们将以最高标准遵守法律法规要求,尽全力保护您的个人信息安全。"
  26 + },
  27 + {
  28 + "name": "dialog_text_privacy_statement",
  29 + "value": "如您同意,请点击“同意”开始接受"
  30 + },
  31 + {
  32 + "name": "dialog_button_disagree",
  33 + "value": "暂不使用"
  34 + },
  35 + {
  36 + "name": "dialog_button_agree",
  37 + "value": "同意"
  38 + },
  39 + {
  40 + "name": "privacy_text_title_policy",
  41 + "value": "《隐私政策》"
  42 + },
  43 + {
  44 + "name": "privacy_text_title_protocol",
  45 + "value": "《用户协议》"
14 } 46 }
  47 +
  48 +
  49 +
15 ] 50 ]
16 } 51 }
@@ -10,6 +10,9 @@ @@ -10,6 +10,9 @@
10 "pages/AppointmentListPage", 10 "pages/AppointmentListPage",
11 "pages/SettingPasswordPage", 11 "pages/SettingPasswordPage",
12 "pages/FollowListPage", 12 "pages/FollowListPage",
13 - "pages/MyHomePage" 13 + "pages/MyHomePage",
  14 + "pages/LaunchPage",
  15 + "pages/LaunchAdvertisingPage",
  16 + "pages/PrivacyPage"
14 ] 17 ]
15 -}  
  18 +}
@@ -11,6 +11,40 @@ @@ -11,6 +11,40 @@
11 { 11 {
12 "name": "EntryAbility_label", 12 "name": "EntryAbility_label",
13 "value": "$string:app_name" 13 "value": "$string:app_name"
  14 + },
  15 + {
  16 + "name": "dialog_text_title",
  17 + "value": "个人隐私保护指引"
  18 + },
  19 + {
  20 + "name": "dialog_text_subTitle",
  21 + "value": "欢迎您使用人民日报客户端!"
  22 + },
  23 + {
  24 + "name": "dialog_text_privacy_content",
  25 + "value": "为了更好地为您提供阅读新闻、发布评论等相关服务,我们会根据您使用服务的具体功能需要,收集必要的用户信息。您可通过阅读《隐私政策》和《用户协议》了解我们收集、使用、存储和共享个人信息的情况,以及对您个人隐私的保护措施。人民日报客户端深知个人信息对您的重要性,我们将以最高标准遵守法律法规要求,尽全力保护您的个人信息安全。"
  26 + },
  27 + {
  28 + "name": "dialog_text_privacy_statement",
  29 + "value": "如您同意,请点击“同意”开始接受"
  30 + },
  31 + {
  32 + "name": "dialog_button_disagree",
  33 + "value": "暂不使用"
  34 + },
  35 + {
  36 + "name": "dialog_button_agree",
  37 + "value": "同意"
  38 + },
  39 + {
  40 + "name": "privacy_text_title_policy",
  41 + "value": "《隐私政策》"
  42 + },
  43 + {
  44 + "name": "privacy_text_title_protocol",
  45 + "value": "《用户协议》"
14 } 46 }
  47 +
  48 +
15 ] 49 ]
16 } 50 }
@@ -11,6 +11,38 @@ @@ -11,6 +11,38 @@
11 { 11 {
12 "name": "EntryAbility_label", 12 "name": "EntryAbility_label",
13 "value": "$string:app_name" 13 "value": "$string:app_name"
  14 + },
  15 + {
  16 + "name": "dialog_text_title",
  17 + "value": "个人隐私保护指引"
  18 + },
  19 + {
  20 + "name": "dialog_text_subTitle",
  21 + "value": "欢迎您使用人民日报客户端!"
  22 + },
  23 + {
  24 + "name": "dialog_text_privacy_content",
  25 + "value": "为了更好地为您提供阅读新闻、发布评论等相关服务,我们会根据您使用服务的具体功能需要,收集必要的用户信息。您可通过阅读《隐私政策》和《用户协议》了解我们收集、使用、存储和共享个人信息的情况,以及对您个人隐私的保护措施。人民日报客户端深知个人信息对您的重要性,我们将以最高标准遵守法律法规要求,尽全力保护您的个人信息安全。"
  26 + },
  27 + {
  28 + "name": "dialog_text_privacy_statement",
  29 + "value": "如您同意,请点击“同意”开始接受"
  30 + },
  31 + {
  32 + "name": "dialog_button_disagree",
  33 + "value": "暂不使用"
  34 + },
  35 + {
  36 + "name": "dialog_button_agree",
  37 + "value": "同意"
  38 + },
  39 + {
  40 + "name": "privacy_text_title_policy",
  41 + "value": "《隐私政策》"
  42 + },
  43 + {
  44 + "name": "privacy_text_title_protocol",
  45 + "value": "《用户协议》"
14 } 46 }
15 ] 47 ]
16 } 48 }
  1 +{
  2 + "requests" : [
  3 +
  4 + ]
  5 +}