pdf-master-landing 0.2.13 → 0.2.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/app/.last_build_id +1 -1
  2. package/dist/app/assets/NOTICES +96 -65
  3. package/dist/app/assets/assets/branding/app_brand.png +0 -0
  4. package/dist/app/assets/fonts/MaterialIcons-Regular.otf +0 -0
  5. package/dist/app/assets/packages/lucide_icons_flutter/assets/build_font/LucideVariable-w100.ttf +0 -0
  6. package/dist/app/assets/packages/lucide_icons_flutter/assets/build_font/LucideVariable-w200.ttf +0 -0
  7. package/dist/app/assets/packages/lucide_icons_flutter/assets/build_font/LucideVariable-w300.ttf +0 -0
  8. package/dist/app/assets/packages/lucide_icons_flutter/assets/build_font/LucideVariable-w400.ttf +0 -0
  9. package/dist/app/assets/packages/lucide_icons_flutter/assets/build_font/LucideVariable-w500.ttf +0 -0
  10. package/dist/app/assets/packages/lucide_icons_flutter/assets/build_font/LucideVariable-w600.ttf +0 -0
  11. package/dist/app/assets/packages/lucide_icons_flutter/assets/lucide.ttf +0 -0
  12. package/dist/app/assets/packages/pdfrx/assets/pdfium_worker.js +48 -0
  13. package/dist/app/flutter_bootstrap.js +1 -1
  14. package/dist/app/index.html +28 -9
  15. package/dist/app/main.dart.js +88078 -86777
  16. package/dist/app/main.dart.mjs +247 -234
  17. package/dist/app/main.dart.wasm +0 -0
  18. package/dist/app/manifest-zh-Hans.json +35 -0
  19. package/dist/app/manifest.json +3 -3
  20. package/dist/app/version.json +1 -1
  21. package/dist/assets/main-BQJk9z-o.js +1 -0
  22. package/dist/assets/{privacy-Btx5j4M5.js → privacy-BtO-u2Yf.js} +1 -1
  23. package/dist/assets/{style-CseIjifG.css → style-DpAF4gqo.css} +1 -1
  24. package/dist/assets/{support-BEQWMbtp.js → support-sgcE1k-N.js} +1 -1
  25. package/dist/assets/{tokens-Bf_kHx79.js → tokens-CzcuV8ia.js} +5 -5
  26. package/dist/index.html +3 -3
  27. package/dist/privacy.html +3 -3
  28. package/dist/support.html +3 -3
  29. package/package.json +1 -1
  30. package/dist/assets/main-C6qjBV18.js +0 -1
@@ -1 +1 @@
1
- 65f370323d6a10f394f025c255e7bbea
1
+ 7f6177bf4dfe3d84bdf94967b4b9c73f
@@ -2445,7 +2445,6 @@ in_app_purchase
2445
2445
  in_app_purchase_android
2446
2446
  in_app_purchase_platform_interface
2447
2447
  in_app_purchase_storekit
2448
- path_provider
2449
2448
  path_provider_android
2450
2449
  path_provider_foundation
2451
2450
  path_provider_linux
@@ -5597,6 +5596,22 @@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
5597
5596
  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
5598
5597
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
5599
5598
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5599
+ --------------------------------------------------------------------------------
5600
+ file_selector_ohos
5601
+
5602
+ # Copyright (c) 2023 Hunan OpenValley Digital Industry Development Co., Ltd.
5603
+ # Licensed under the Apache License, Version 2.0 (the "License");
5604
+ # you may not use this file except in compliance with the License.
5605
+ # You may obtain a copy of the License at
5606
+ #
5607
+ # http://www.apache.org/licenses/LICENSE-2.0
5608
+ #
5609
+ # Unless required by applicable law or agreed to in writing, software
5610
+ # distributed under the License is distributed on an "AS IS" BASIS,
5611
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5612
+ # See the License for the specific language governing permissions and
5613
+ # limitations under the License.
5614
+
5600
5615
  --------------------------------------------------------------------------------
5601
5616
  fixnum
5602
5617
  http_multi_server
@@ -6116,10 +6131,15 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6116
6131
  --------------------------------------------------------------------------------
6117
6132
  flutter_lints
6118
6133
  image_picker_linux
6134
+ image_picker_ohos
6119
6135
  image_picker_windows
6136
+ in_app_purchase_ohos
6137
+ path_provider
6138
+ path_provider_ohos
6120
6139
  path_provider_windows
6121
6140
  plugin_platform_interface
6122
6141
  shared_preferences_linux
6142
+ shared_preferences_ohos
6123
6143
  shared_preferences_web
6124
6144
  shared_preferences_windows
6125
6145
  url_launcher
@@ -7654,37 +7674,6 @@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
7654
7674
  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
7655
7675
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
7656
7676
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7657
- --------------------------------------------------------------------------------
7658
- gal
7659
-
7660
- Copyright (c) 2023 Midori Design Studio by @natsuk4ze
7661
- All rights reserved.
7662
-
7663
- Redistribution and use in source and binary forms, with or without modification,
7664
- are permitted provided that the following conditions are met:
7665
-
7666
- 1. Redistributions of source code must retain the above copyright notice,
7667
- this list of conditions and the following disclaimer.
7668
-
7669
- 2. Redistributions in binary form must reproduce the above copyright notice,
7670
- this list of conditions and the following disclaimer in the documentation
7671
- and/or other materials provided with the distribution.
7672
-
7673
- 3. Neither the name of the Midori Design Studio nor the names of its contributors
7674
- may be used to endorse or promote products derived from this software
7675
- without specific prior written permission.
7676
-
7677
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
7678
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
7679
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
7680
- IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
7681
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
7682
- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
7683
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
7684
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
7685
- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
7686
- OF THE POSSIBILITY OF SUCH DAMAGE.
7687
-
7688
7677
  --------------------------------------------------------------------------------
7689
7678
  get_it
7690
7679
 
@@ -25439,38 +25428,6 @@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25439
25428
  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25440
25429
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25441
25430
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25442
- --------------------------------------------------------------------------------
25443
- objective_c
25444
- record_use
25445
-
25446
- Copyright 2024, the Dart project authors.
25447
-
25448
- Redistribution and use in source and binary forms, with or without
25449
- modification, are permitted provided that the following conditions are
25450
- met:
25451
-
25452
- * Redistributions of source code must retain the above copyright
25453
- notice, this list of conditions and the following disclaimer.
25454
- * Redistributions in binary form must reproduce the above
25455
- copyright notice, this list of conditions and the following
25456
- disclaimer in the documentation and/or other materials provided
25457
- with the distribution.
25458
- * Neither the name of Google LLC nor the names of its
25459
- contributors may be used to endorse or promote products derived
25460
- from this software without specific prior written permission.
25461
-
25462
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25463
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25464
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25465
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25466
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25467
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25468
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25469
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25470
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25471
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25472
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25473
-
25474
25431
  --------------------------------------------------------------------------------
25475
25432
  open_file
25476
25433
  open_file_android
@@ -26359,6 +26316,37 @@ Redistribution and use in source and binary forms, with or without modification,
26359
26316
 
26360
26317
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26361
26318
 
26319
+ --------------------------------------------------------------------------------
26320
+ record_use
26321
+
26322
+ Copyright 2024, the Dart project authors.
26323
+
26324
+ Redistribution and use in source and binary forms, with or without
26325
+ modification, are permitted provided that the following conditions are
26326
+ met:
26327
+
26328
+ * Redistributions of source code must retain the above copyright
26329
+ notice, this list of conditions and the following disclaimer.
26330
+ * Redistributions in binary form must reproduce the above
26331
+ copyright notice, this list of conditions and the following
26332
+ disclaimer in the documentation and/or other materials provided
26333
+ with the distribution.
26334
+ * Neither the name of Google LLC nor the names of its
26335
+ contributors may be used to endorse or promote products derived
26336
+ from this software without specific prior written permission.
26337
+
26338
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26339
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26340
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26341
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26342
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26343
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26344
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26345
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26346
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26347
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26348
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26349
+
26362
26350
  --------------------------------------------------------------------------------
26363
26351
  rxdart
26364
26352
 
@@ -28866,6 +28854,7 @@ May you find forgiveness for yourself and forgive others
28866
28854
  May you share freely, never taking more than you give.
28867
28855
  --------------------------------------------------------------------------------
28868
28856
  sqlite3
28857
+ sqlite3_flutter_libs
28869
28858
 
28870
28859
  MIT License
28871
28860
 
@@ -29348,6 +29337,48 @@ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29348
29337
  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29349
29338
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29350
29339
 
29340
+ --------------------------------------------------------------------------------
29341
+ url_launcher_ohos
29342
+
29343
+ # Copyright (c) 2023 Hunan OpenValley Digital Industry Development Co., Ltd.
29344
+ # Licensed under the Apache License, Version 2.0 (the "License");
29345
+ # you may not use this file except in compliance with the License.
29346
+ # You may obtain a copy of the License at
29347
+ #
29348
+ # http://www.apache.org/licenses/LICENSE-2.0
29349
+ #
29350
+ # Unless required by applicable law or agreed to in writing, software
29351
+ # distributed under the License is distributed on an "AS IS" BASIS,
29352
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29353
+ # See the License for the specific language governing permissions and
29354
+ # limitations under the License.
29355
+
29356
+ Copyright 2013 The Flutter Authors. All rights reserved.
29357
+
29358
+ Redistribution and use in source and binary forms, with or without modification,
29359
+ are permitted provided that the following conditions are met:
29360
+
29361
+ * Redistributions of source code must retain the above copyright
29362
+ notice, this list of conditions and the following disclaimer.
29363
+ * Redistributions in binary form must reproduce the above
29364
+ copyright notice, this list of conditions and the following
29365
+ disclaimer in the documentation and/or other materials provided
29366
+ with the distribution.
29367
+ * Neither the name of Google Inc. nor the names of its
29368
+ contributors may be used to endorse or promote products derived
29369
+ from this software without specific prior written permission.
29370
+
29371
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
29372
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
29373
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29374
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
29375
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29376
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29377
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
29378
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29379
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29380
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29381
+
29351
29382
  --------------------------------------------------------------------------------
29352
29383
  uuid
29353
29384
 
@@ -32265,7 +32296,7 @@ xml
32265
32296
 
32266
32297
  The MIT License
32267
32298
 
32268
- Copyright (c) 2006-2025 Lukas Renggli.
32299
+ Copyright (c) 2006-2026 Lukas Renggli.
32269
32300
  All rights reserved.
32270
32301
 
32271
32302
  Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1943,6 +1943,7 @@ function _collectPageImages(pageHandle, container, images, parentPath, parentMat
1943
1943
  continue;
1944
1944
  }
1945
1945
  if (type !== FPDF_PAGEOBJ_FORM) continue;
1946
+ if (_isWatermarkPageObject(obj)) continue;
1946
1947
  const childCount = _formObjectCount(obj);
1947
1948
  if (childCount <= 0) continue;
1948
1949
  const formMatrix = _readImageMatrix(obj);
@@ -2003,6 +2004,19 @@ function _formObjectCount(formObj) {
2003
2004
  return Pdfium.wasmExports.FPDFFormObj_CountObjects(formObj);
2004
2005
  }
2005
2006
 
2007
+ function _isWatermarkPageObject(pageObject) {
2008
+ if (typeof Pdfium.wasmExports.FPDFPageObj_CountMarks !== 'function') return false;
2009
+ if (typeof Pdfium.wasmExports.FPDFPageObj_GetMark !== 'function') return false;
2010
+ if (typeof Pdfium.wasmExports.FPDFPageObjMark_GetName !== 'function') return false;
2011
+ const count = Pdfium.wasmExports.FPDFPageObj_CountMarks(pageObject);
2012
+ if (count <= 0) return false;
2013
+ for (let i = 0; i < count; i++) {
2014
+ const mark = Pdfium.wasmExports.FPDFPageObj_GetMark(pageObject, i);
2015
+ if (mark && _markNameEquals(mark, WATERMARK_MARK_NAME)) return true;
2016
+ }
2017
+ return false;
2018
+ }
2019
+
2006
2020
  function _identityMatrix() {
2007
2021
  return { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 };
2008
2022
  }
@@ -4828,6 +4842,39 @@ function createNewDocument() {
4828
4842
  return _loadDocument(docHandle, false, () => {});
4829
4843
  }
4830
4844
 
4845
+ /**
4846
+ * Create a PDF document with one empty page.
4847
+ * @param {Object} params Parameters object
4848
+ * @param {number} params.width Page width in PDF units
4849
+ * @param {number} params.height Page height in PDF units
4850
+ * @returns {PdfDocument|PdfError}
4851
+ */
4852
+ function createBlankDocument(params) {
4853
+ const { width, height } = params;
4854
+ if (typeof width !== 'number' || width <= 0) {
4855
+ return { errorCode: -1, errorCodeStr: 'Invalid width' };
4856
+ }
4857
+ if (typeof height !== 'number' || height <= 0) {
4858
+ return { errorCode: -1, errorCodeStr: 'Invalid height' };
4859
+ }
4860
+ const docHandle = Pdfium.wasmExports.FPDF_CreateNewDocument();
4861
+ if (!docHandle) {
4862
+ return { errorCode: -1, errorCodeStr: 'Failed to create PDF document' };
4863
+ }
4864
+ const pageHandle = Pdfium.wasmExports.FPDFPage_New(docHandle, 0, width, height);
4865
+ if (!pageHandle) {
4866
+ Pdfium.wasmExports.FPDF_CloseDocument(docHandle);
4867
+ return { errorCode: -1, errorCodeStr: 'Failed to create PDF page' };
4868
+ }
4869
+ const generated = Pdfium.wasmExports.FPDFPage_GenerateContent(pageHandle);
4870
+ Pdfium.wasmExports.FPDF_ClosePage(pageHandle);
4871
+ if (!generated) {
4872
+ Pdfium.wasmExports.FPDF_CloseDocument(docHandle);
4873
+ return { errorCode: -1, errorCodeStr: 'Failed to generate PDF page content' };
4874
+ }
4875
+ return _loadDocument(docHandle, false, () => {});
4876
+ }
4877
+
4831
4878
  /**
4832
4879
  * Create a PDF document from JPEG data
4833
4880
  * @param {Object} params Parameters object
@@ -4993,6 +5040,7 @@ const functions = {
4993
5040
  loadDocumentFromUrl,
4994
5041
  loadDocumentFromData,
4995
5042
  createNewDocument,
5043
+ createBlankDocument,
4996
5044
  createDocumentFromJpegData,
4997
5045
  loadPagesProgressively,
4998
5046
  reloadPages,
@@ -37,6 +37,6 @@ _flutter.buildConfig = {"engineRevision":"83675ed27633283e7fc296c8bca22e841224c0
37
37
 
38
38
  _flutter.loader.load({
39
39
  serviceWorkerSettings: {
40
- serviceWorkerVersion: "3944794591" /* Flutter's service worker is deprecated and will be removed in a future Flutter release. */
40
+ serviceWorkerVersion: "2150495811" /* Flutter's service worker is deprecated and will be removed in a future Flutter release. */
41
41
  }
42
42
  });
@@ -23,7 +23,7 @@
23
23
  <!-- iOS meta tags & icons -->
24
24
  <meta name="mobile-web-app-capable" content="yes">
25
25
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
26
- <meta name="apple-mobile-web-app-title" content="PDF Master">
26
+ <meta name="apple-mobile-web-app-title" content="PDFMaster">
27
27
  <link rel="apple-touch-icon" href="apple-touch-icon.png">
28
28
 
29
29
  <!-- Favicon: 多份分辨率让浏览器按 DPR 自己挑,避免被一张 16x16 拉糊 -->
@@ -31,8 +31,25 @@
31
31
  <link rel="icon" type="image/png" sizes="96x96" href="favicon-96.png"/>
32
32
  <link rel="icon" type="image/png" sizes="192x192" href="icons/Icon-192.png"/>
33
33
 
34
- <title>PDF Master</title>
35
- <link rel="manifest" href="manifest.json">
34
+ <title>PDFMaster</title>
35
+ <script>
36
+ function usesSimplifiedChinese() {
37
+ var languages = navigator.languages && navigator.languages.length ? navigator.languages : [navigator.language];
38
+ var language = (languages[0] || '').replace('_', '-').toLowerCase();
39
+ if (language.indexOf('zh') !== 0) return false;
40
+ if (language.indexOf('-hant') !== -1 || /^zh-(tw|hk|mo)(-|$)/.test(language)) return false;
41
+ return language === 'zh' || language.indexOf('-hans') !== -1 || /^zh-(cn|sg|my)(-|$)/.test(language);
42
+ }
43
+
44
+ var simplifiedChinese = usesSimplifiedChinese();
45
+ var platformDisplayName = simplifiedChinese ? 'PDF 大师' : 'PDFMaster';
46
+ document.title = platformDisplayName;
47
+ document.querySelector('meta[name="apple-mobile-web-app-title"]').content = platformDisplayName;
48
+ var manifestLink = document.createElement('link');
49
+ manifestLink.rel = 'manifest';
50
+ manifestLink.href = simplifiedChinese ? 'manifest-zh-Hans.json' : 'manifest.json';
51
+ document.head.appendChild(manifestLink);
52
+ </script>
36
53
 
37
54
  <style>
38
55
  html, body { margin: 0; padding: 0; height: 100%; background: #FFFFFF; }
@@ -85,9 +102,7 @@
85
102
  </style>
86
103
  <script>
87
104
  function appLoaderText() {
88
- var languages = navigator.languages && navigator.languages.length ? navigator.languages : [navigator.language];
89
- var firstLanguage = (languages[0] || '').toLowerCase();
90
- return firstLanguage.indexOf('zh') === 0 ? '正在打开 PDF Master...' : 'Opening PDF Master...';
105
+ return simplifiedChinese ? '正在打开 PDF 大师...' : 'Opening PDFMaster...';
91
106
  }
92
107
 
93
108
  // 给 Dart 端用的隐藏入口:首帧渲染完成后渐隐并移除 HTML loader。
@@ -102,14 +117,18 @@
102
117
  </script>
103
118
  </head>
104
119
  <body>
105
- <div id="app-loader" role="status" aria-live="polite" aria-label="正在打开 PDF Master">
120
+ <div id="app-loader" role="status" aria-live="polite" aria-label="Opening PDFMaster">
106
121
  <div class="app-loader__content">
107
122
  <img class="app-loader__mark" src="assets/assets/branding/app_brand.png" alt="" />
108
- <p class="app-loader__title" id="app-loader-title">Opening PDF Master...</p>
123
+ <p class="app-loader__title" id="app-loader-title">Opening PDFMaster...</p>
109
124
  </div>
110
125
  </div>
111
126
  <script>
112
- document.getElementById('app-loader-title').textContent = appLoaderText();
127
+ var appLoader = document.getElementById('app-loader');
128
+ var appLoaderTitle = document.getElementById('app-loader-title');
129
+ var localizedLoaderText = appLoaderText();
130
+ appLoader.setAttribute('aria-label', localizedLoaderText);
131
+ appLoaderTitle.textContent = localizedLoaderText;
113
132
  </script>
114
133
  <!--
115
134
  You can customize the "flutter_bootstrap.js" script.