forked from sheetjs/docs.sheetjs.com
		
	react-native-details
This commit is contained in:
		
							parent
							
								
									e6308dac88
								
							
						
					
					
						commit
						c5f24c4f1e
					
				| @ -328,7 +328,7 @@ This demo was tested in the following environments: | ||||
| 
 | ||||
| | ReactJS  | ViteJS  | Date       | | ||||
| |:---------|:--------|:-----------| | ||||
| | `18.2.0` | `5.0.5` | 2023-12-04 | | ||||
| | `18.2.0` | `5.1.6` | 2024-03-13 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -376,8 +376,11 @@ and test the page. | ||||
| 
 | ||||
| :::note Tested Deployments | ||||
| 
 | ||||
| This demo was last run on 2023 October 24 using `create-react-app@5.0.1` and | ||||
| `react-scripts@5.0.1`. | ||||
| This demo was tested in the following environments: | ||||
| 
 | ||||
| | ReactJS  | CRA     | Date       | | ||||
| |:---------|:--------|:-----------| | ||||
| | `18.2.0` | `5.0.1` | 2024-03-13 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -417,12 +420,131 @@ The generated site will be placed in the `build` folder. | ||||
| npx http-server build | ||||
| ``` | ||||
| 
 | ||||
| Access the displayed URL (typically `http://localhost:8080`) with a web browser | ||||
| and test the page. | ||||
| 
 | ||||
|   </TabItem> | ||||
|   <TabItem name="nextjs" value="NextJS"> | ||||
| 
 | ||||
| :::note Tested Deployments | ||||
| 
 | ||||
| This demo was tested in the following environments: | ||||
| 
 | ||||
| | ReactJS  | NextJS   | Date       | | ||||
| |:---------|:---------|:-----------| | ||||
| | `18.2.0` | `14.1.3` | 2024-03-13 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::info pass | ||||
| 
 | ||||
| This demo focuses on processing data in Client Components. | ||||
| 
 | ||||
| The [NextJS demo](/docs/demos/static/nextjs) covers static site generation. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::caution pass | ||||
| 
 | ||||
| NextJS requires a number of workarounds for simple client-side JavaScript code. | ||||
| 
 | ||||
| **It is strongly recommended to use ViteJS or create-react-app when possible!** | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| 
 | ||||
| NextJS collects telemetry by default. The `telemetry` subcommand can disable it: | ||||
| 
 | ||||
| ```js | ||||
| npx next telemetry disable | ||||
| ``` | ||||
| 
 | ||||
| The setting can be verified by running | ||||
| 
 | ||||
| ```js | ||||
| npx next telemetry status | ||||
| ``` | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| 0) Disable NextJS telemetry: | ||||
| 
 | ||||
| ```bash | ||||
| npx next telemetry disable | ||||
| ``` | ||||
| 
 | ||||
| 1) Create a new site: | ||||
| 
 | ||||
| ```bash | ||||
| npx create-next-app@latest sheetjs-react --ts --no-eslint --no-tailwind --no-src-dir --no-app --import-alias "@/*" | ||||
| ``` | ||||
| 
 | ||||
| 2) Install the SheetJS dependency and start the dev server: | ||||
| 
 | ||||
| <CodeBlock language="bash">{`\ | ||||
| cd sheetjs-react | ||||
| npm i | ||||
| npx next telemetry disable | ||||
| npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz | ||||
| npm run dev`} | ||||
| </CodeBlock> | ||||
| 
 | ||||
| 3) Open a web browser and access the displayed URL (`http://localhost:5173`) | ||||
| 
 | ||||
| 4) Replace `src/App.jsx` with the `src/SheetJSReactAoO.js` example. | ||||
| 
 | ||||
| After replacing the code, add the following to the top of `src/App.jsx`: | ||||
| 
 | ||||
| ```js title="src/App.jsx (add to top)" | ||||
| "use client"; | ||||
| ``` | ||||
| 
 | ||||
| :::info NextJS Client Component Workaround | ||||
| 
 | ||||
| The goal is to run SheetJS code in the browser. NextJS will attempt to render | ||||
| pages on the server by default. `"use client";` instructs NextJS to treat the | ||||
| exported component as a "Client Component" that will be rendered in the browser. | ||||
| 
 | ||||
| If the pragma is not added, NextJS will report errors related to hydration: | ||||
| 
 | ||||
| ``` | ||||
| Error: Hydration failed because the initial UI does not match what was rendered on the server. | ||||
| 
 | ||||
| Warning: Expected server HTML to contain a matching <td> in <tfoot>. | ||||
| 
 | ||||
| See more info here: https://nextjs.org/docs/messages/react-hydration-error | ||||
| ``` | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| The page will refresh and show a table with an Export button.  Click the button | ||||
| and the page will attempt to download `SheetJSReactAoO.xlsx`. | ||||
| 
 | ||||
| 5) Build the site: | ||||
| 
 | ||||
| ```bash | ||||
| npm run build | ||||
| ``` | ||||
| 
 | ||||
| The generated site will be placed in the `dist` folder. | ||||
| 
 | ||||
| 6) Start a local web server: | ||||
| 
 | ||||
| ```bash | ||||
| npx http-server dist | ||||
| ``` | ||||
| 
 | ||||
| Access the displayed URL (typically `http://localhost:8080`) with a web browser | ||||
| and test the page. | ||||
| 
 | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
| When the page loads, the app will fetch <https://sheetjs.com/pres.xlsx> and | ||||
| display the data from the first worksheet in a TABLE. The "Export XLSX" button | ||||
| will generate a workbook that can be opened in a spreadsheet editor. | ||||
| 
 | ||||
| </details> | ||||
| 
 | ||||
| ### HTML | ||||
| @ -485,7 +607,11 @@ export default function SheetJSReactHTML() { | ||||
| 
 | ||||
| :::note Tested Deployments | ||||
| 
 | ||||
| This demo was last tested on 2023 October 08 with ViteJS 4.4.1 and React 18.2.0 | ||||
| This demo was tested in the following environments: | ||||
| 
 | ||||
| | ReactJS  | ViteJS  | Date       | | ||||
| |:---------|:--------|:-----------| | ||||
| | `18.2.0` | `5.1.6` | 2024-03-13 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -533,8 +659,11 @@ and test the page. | ||||
| 
 | ||||
| :::note Tested Deployments | ||||
| 
 | ||||
| This demo was last run on 2023 October 24 using `create-react-app@5.0.1` and | ||||
| `react-scripts@5.0.1`. | ||||
| This demo was tested in the following environments: | ||||
| 
 | ||||
| | ReactJS  | CRA     | Date       | | ||||
| |:---------|:--------|:-----------| | ||||
| | `18.2.0` | `5.0.1` | 2024-03-13 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -580,6 +709,10 @@ and test the page. | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
| When the page loads, the app will fetch <https://sheetjs.com/pres.xlsx> and | ||||
| display the data from the first worksheet in a TABLE. The "Export XLSX" button | ||||
| will generate a workbook that can be opened in a spreadsheet editor. | ||||
| 
 | ||||
| </details> | ||||
| 
 | ||||
| ### Rows and Columns | ||||
|  | ||||
| @ -420,10 +420,10 @@ export class AppComponent { | ||||
| 
 | ||||
| This demo was tested in the following environments: | ||||
| 
 | ||||
| | Angular  | Date       | | ||||
| |:---------|:-----------| | ||||
| | `17.0.5` | 2023-12-04 | | ||||
| | `16.2.7` | 2023-10-22 | | ||||
| | Angular   | Date       | | ||||
| |:----------|:-----------| | ||||
| | `17.3.0`  | 2024-03-13 | | ||||
| | `16.2.12` | 2024-03-13 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -436,9 +436,20 @@ npx @angular/cli analytics disable -g | ||||
| 1) Create a new project: | ||||
| 
 | ||||
| ```bash | ||||
| npx @angular/cli@17.0.5 new --minimal --defaults --no-interactive sheetjs-angular | ||||
| npx @angular/cli@17.3.0 new --minimal --defaults --no-interactive sheetjs-angular | ||||
| ``` | ||||
| 
 | ||||
| :::note pass | ||||
| 
 | ||||
| The `@angular/cli` version controls the project version of Angular. For example, | ||||
| the following command uses Angular 16.2.12: | ||||
| 
 | ||||
| ```bash | ||||
| npx @angular/cli@16.2.12 new --minimal --defaults --no-interactive sheetjs-angular | ||||
| ``` | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| 2) Install the SheetJS dependency and start the dev server: | ||||
| 
 | ||||
| <CodeBlock language="bash">{`\ | ||||
| @ -484,7 +495,8 @@ npx -y http-server dist/sheetjs-angular/browser/ | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
| Access `http://localhost:8080` with a web browser to test the bundled site. | ||||
| Access the displayed URL (typically `http://localhost:8080`) with a web browser | ||||
| to test the bundled site. | ||||
| 
 | ||||
| </details> | ||||
| 
 | ||||
| @ -599,7 +611,12 @@ export class AppComponent { | ||||
| 
 | ||||
| :::note Tested Deployments | ||||
| 
 | ||||
| This demo was last run on 2023-11-18 using Angular 17.0.3 and CLI `17.0.1` | ||||
| This demo was tested in the following environments: | ||||
| 
 | ||||
| | Angular   | Date       | | ||||
| |:----------|:-----------| | ||||
| | `17.3.0`  | 2024-03-13 | | ||||
| | `16.2.12` | 2024-03-13 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -612,9 +629,20 @@ npx @angular/cli analytics disable -g | ||||
| 1) Create a new project: | ||||
| 
 | ||||
| ```bash | ||||
| npx @angular/cli@17.0.1 new --minimal --defaults --no-interactive sheetjs-angular | ||||
| npx @angular/cli@17.3.0 new --minimal --defaults --no-interactive sheetjs-angular | ||||
| ``` | ||||
| 
 | ||||
| :::note pass | ||||
| 
 | ||||
| The `@angular/cli` version controls the project version of Angular. For example, | ||||
| the following command uses Angular 16.2.12: | ||||
| 
 | ||||
| ```bash | ||||
| npx @angular/cli@16.2.12 new --minimal --defaults --no-interactive sheetjs-angular | ||||
| ``` | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| 2) Install the SheetJS dependency and start the dev server: | ||||
| 
 | ||||
| <CodeBlock language="bash">{`\ | ||||
| @ -702,7 +730,7 @@ Google and the Angular team. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::caution | ||||
| :::caution pass | ||||
| 
 | ||||
| The Angular tooling does not provide a command to switch between versions! | ||||
| 
 | ||||
| @ -797,7 +825,7 @@ In the component, `aoa_to_sheet` is used to generate the worksheet: | ||||
| 
 | ||||
| ### SystemJS | ||||
| 
 | ||||
| The default angular-cli configuration requires no additional configuration. | ||||
| The default `angular-cli` configuration requires no additional configuration. | ||||
| 
 | ||||
| Some deployments use the SystemJS loader, which does require configuration. | ||||
| [The SystemJS demo](/docs/demos/frontend/bundler/systemjs) includes the | ||||
| @ -983,14 +1011,14 @@ curl -o tsconfig.app.json -L https://docs.sheetjs.com/angular/versions/tsconfig. | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
| 2) install project and dependencies: | ||||
| 2) Install project and dependencies: | ||||
| 
 | ||||
| <CodeBlock language="bash">{`\ | ||||
| npm i | ||||
| npm i -S https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </CodeBlock> | ||||
| 
 | ||||
| 3) start a local server with | ||||
| 3) Start a local server with | ||||
| 
 | ||||
| ```bash | ||||
| npm start | ||||
| @ -1000,7 +1028,7 @@ The traditional site URL is `http://localhost:4200/` . Open the page with a web | ||||
| browser and open the console.  In the "Elements" tab, the `app-root` element | ||||
| will have an `ng-version` attribute. | ||||
| 
 | ||||
| 4) build the app with | ||||
| 4) Build the app with | ||||
| 
 | ||||
| ```bash | ||||
| npm run build | ||||
|  | ||||
| @ -203,7 +203,7 @@ Object.defineProperty(tbl.__proto__, "innerHTML", { get: function() { | ||||
| 
 | ||||
| :::note Tested Deployments | ||||
| 
 | ||||
| This demo was last tested on 2023 September 10 against XMLDOM `0.8.10` | ||||
| This demo was last tested on 2024 March 12 against XMLDOM `0.8.10` | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -246,7 +246,7 @@ features to ensure that SheetJS DOM methods can process TABLE elements. | ||||
| 
 | ||||
| :::note Tested Deployments | ||||
| 
 | ||||
| This demo was last tested on 2023 September 10 against Cheerio `1.0.0-rc.12` | ||||
| This demo was last tested on 2024 March 12 against Cheerio `1.0.0-rc.12` | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|  | ||||
| @ -47,6 +47,14 @@ npx next@13.5.6 telemetry status | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::info pass | ||||
| 
 | ||||
| This demo focuses on static sites where data files are processed at build time. | ||||
| 
 | ||||
| [The ReactJS demo](/docs/demos/frontend/react) shows NextJS "Client Components". | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::caution Next 13+ and SWC | ||||
| 
 | ||||
| Next 13 switched to the SWC minifier. There are known issues with the minifier. | ||||
|  | ||||
| @ -200,7 +200,7 @@ row. This neatly skips the first header row. | ||||
| 
 | ||||
| ## Fetching Remote Data | ||||
| 
 | ||||
| React Native versions starting from `0.72.0`[^5] support binary data with `fetch`. | ||||
| React Native versions starting from `0.72.0`[^5] support binary data in `fetch`. | ||||
| 
 | ||||
| This snippet downloads and parses <https://sheetjs.com/pres.xlsx>: | ||||
| 
 | ||||
| @ -217,19 +217,27 @@ const wb = XLSX.read(ab); | ||||
| 
 | ||||
| This demo was tested in the following environments: | ||||
| 
 | ||||
| | OS         | Type | Device              | RN       | Date       | | ||||
| |:-----------|:-----|:--------------------|:---------|:-----------| | ||||
| | Android 34 | Sim  | Pixel 3a            | `0.73.5` | 2024-03-05 | | ||||
| | iOS 17.2   | Sim  | iPhone 15 Pro Max   | `0.73.1` | 2023-12-21 | | ||||
| | Android 29 | Real | NVIDIA Shield       | `0.73.5` | 2024-03-05 | | ||||
| | iOS 15.1   | Real | iPad Pro            | `0.73.1` | 2023-12-21 | | ||||
| **Simulators** | ||||
| 
 | ||||
| | OS         | Device            | RN       | Dev Platform | Date       | | ||||
| |:-----------|:------------------|:---------|:-------------|:-----------| | ||||
| | Android 34 | Pixel 3a          | `0.73.6` | `darwin-x64` | 2024-03-13 | | ||||
| | iOS 17.4   | iPhone 15 Pro Max | `0.73.6` | `darwin-x64` | 2024-03-13 | | ||||
| | Android 34 | Pixel 3a          | `0.73.5` | `win10-x64`  | 2024-03-05 | | ||||
| 
 | ||||
| **Real Devices** | ||||
| 
 | ||||
| | OS         | Device            | RN       | Date       | | ||||
| |:-----------|:------------------|:---------|:-----------| | ||||
| | iOS 15.1   | iPhone 12 Pro Max | `0.73.6` | 2024-03-13 | | ||||
| | Android 29 | NVIDIA Shield     | `0.73.6` | 2024-03-13 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| 1) Create project: | ||||
| 
 | ||||
| ```bash | ||||
| npx -y react-native@0.73.1 init SheetJSRNFetch --version="0.73.1" | ||||
| npx -y react-native@0.73.6 init SheetJSRNFetch --version="0.73.6" | ||||
| ``` | ||||
| 
 | ||||
| 2) Install shared dependencies: | ||||
| @ -256,9 +264,9 @@ curl -LO https://docs.sheetjs.com/reactnative/App.tsx | ||||
| When the demo was last tested on macOS, `java -version` displayed the following: | ||||
| 
 | ||||
| ``` | ||||
| openjdk version "17.0.9" 2023-10-17 | ||||
| OpenJDK Runtime Environment Temurin-17.0.9+9 (build 17.0.9+9) | ||||
| OpenJDK 64-Bit Server VM Temurin-17.0.9+9 (build 17.0.9+9, mixed mode) | ||||
| openjdk version "17.0.10" 2024-01-16 | ||||
| OpenJDK Runtime Environment Temurin-17.0.10+7 (build 17.0.10+7) | ||||
| OpenJDK 64-Bit Server VM Temurin-17.0.10+7 (build 17.0.10+7, mixed mode) | ||||
| ``` | ||||
| 
 | ||||
| ::: | ||||
| @ -272,7 +280,7 @@ npx react-native run-android | ||||
| :::caution pass | ||||
| 
 | ||||
| If the initial launch fails with an error referencing the emulator, manually | ||||
| start the emulator and try again. | ||||
| start the emulator from Android Studio and try again. | ||||
| 
 | ||||
| Gradle errors typically stem from a Java version mismatch: | ||||
| 
 | ||||
| @ -359,6 +367,28 @@ npx react-native run-android | ||||
| 
 | ||||
| 14) Enable developer code signing certificates[^7]. | ||||
| 
 | ||||
| <details open><summary><b>Enabling Code Signing</b> (click to show)</summary> | ||||
| 
 | ||||
| These instructions were verified against Xcode 15.3. | ||||
| 
 | ||||
| A) Open the included iOS workspace in Xcode: | ||||
| 
 | ||||
| ```bash | ||||
| open ios/SheetJSRNFetch.xcworkspace | ||||
| ``` | ||||
| 
 | ||||
| B) Select "SheetJSRNFetch" in the Project Navigator: | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| C) Select "Signing & Capabilities" in the main view. | ||||
| 
 | ||||
| D) Select "All" in the lower bar and ensure a Team is selected in the dropdown: | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| </details> | ||||
| 
 | ||||
| 15) Install `ios-deploy` through Homebrew: | ||||
| 
 | ||||
| ```bash | ||||
| @ -373,7 +403,39 @@ npx react-native run-ios | ||||
| 
 | ||||
| :::caution pass | ||||
| 
 | ||||
| When this demo was last tested, the build failed with the following error: | ||||
| In some tests, the app failed to run on the device due to "Untrusted Developer": | ||||
| 
 | ||||
| ``` | ||||
| Your device management settings do not allow apps from developer ... on this iPhone. You can allow using these apps in Settings. | ||||
| ``` | ||||
| 
 | ||||
| These instructions were verified against iOS 15.1. | ||||
| 
 | ||||
| A) Open the Settings app and select "General" > "VPN & Device Management". | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| B) Select the Apple Development certificate under "Developer App". | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| In the new screen, the name "SheetJSRNFetch" will be displayed in the Apps list. | ||||
| 
 | ||||
| C) Tap "Trust ..." and tap "Trust" in the popup. | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| D) Close the Settings app on the device. | ||||
| 
 | ||||
| E) Close the Metro window on the computer. | ||||
| 
 | ||||
| F) Run `npx react-native run-ios` again. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::note pass | ||||
| 
 | ||||
| In some tests, the build failed with the following error: | ||||
| 
 | ||||
| ``` | ||||
| PhaseScriptExecution failed with a nonzero exit code | ||||
| @ -402,6 +464,18 @@ DEST=$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::caution pass | ||||
| 
 | ||||
| In some test runs, the error mentioned a development team: | ||||
| 
 | ||||
| ``` | ||||
| error: Signing for "SheetJSRNFetch" requires a development team. Select a development team in the Signing & Capabilities editor. (in target 'SheetJSRNFetch' from project 'SheetJSRNFetch') | ||||
| ``` | ||||
| 
 | ||||
| Code signing must be enabled in the project! | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::info pass | ||||
| 
 | ||||
| By default, React Native generates applications that exclusively target iPhone. | ||||
| @ -427,8 +501,7 @@ D) Select the "Build Settings" tab in the main area. | ||||
| 
 | ||||
| E) In the search bar below "Build Settings", type "tar" | ||||
| 
 | ||||
| F) Look for the "Targeted Device Families" row. Change the corresponding value | ||||
| to "iPhone, iPad". | ||||
| F) In the "Targeted Device Families" row, change the value to "iPhone, iPad". | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -1058,4 +1131,4 @@ npx xlsx-cli /tmp/sheetjsw.xlsx | ||||
| [^5]: React-Native commit [`5b597b5`](https://github.com/facebook/react-native/commit/5b597b5ff94953accc635ed3090186baeecb3873) added the final piece required for `fetch` support. It landed in version `0.72.0-rc.1` and is available in official releases starting from `0.72.0`. | ||||
| [^6]: When the demo was last tested, the Temurin distribution of Java 17 was installed through the macOS Brew package manager by running `brew install temurin17`. [Direct downloads are available at `adoptium.net`](https://adoptium.net/temurin/releases/?version=17) | ||||
| [^7]: See ["Running On Device"](https://reactnative.dev/docs/running-on-device) in the React Native documentation | ||||
| [^8]: Follow the ["React Native CLI Quickstart"](https://reactnative.dev/docs/environment-setup) for Android (and iOS, if applicable) | ||||
| [^8]: Follow the ["React Native CLI Quickstart"](https://reactnative.dev/docs/environment-setup) for Android (and iOS, if applicable) | ||||
|  | ||||
| @ -113,11 +113,11 @@ This demo was tested in the following environments: | ||||
| 
 | ||||
| | OS and Version | Architecture | NW.js    | Date       | | ||||
| |:---------------|:-------------|:---------|:-----------| | ||||
| | macOS 13.5.2   | `darwin-x64` | `0.78.1` | 2023-09-27 | | ||||
| | macOS 14.3.1   | `darwin-x64` | `0.85.0` | 2024-03-12 | | ||||
| | macOS 14.1.2   | `darwin-arm` | `0.82.0` | 2023-12-01 | | ||||
| | Windows 10     | `win10-x64`  | `0.83.0` | 2024-03-04 | | ||||
| | Windows 11     | `win11-arm`  | `0.82.0` | 2023-12-01 | | ||||
| | Linux (HoloOS) | `linux-x64`  | `0.83.0` | 2024-01-26 | | ||||
| | Linux (HoloOS) | `linux-x64`  | `0.85.0` | 2024-03-12 | | ||||
| 
 | ||||
| There is no official Linux ARM64 release. The community release[^1] was tested | ||||
| and verified on 2023-09-27. | ||||
| @ -140,7 +140,7 @@ cd sheetjs-nwjs | ||||
|   "version": "0.0.0", | ||||
|   "main": "index.html", | ||||
|   "dependencies": { | ||||
|     "nw": "0.83.0", | ||||
|     "nw": "0.85.0", | ||||
|     "xlsx": "https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz" | ||||
|   } | ||||
| }`} | ||||
| @ -179,7 +179,7 @@ the file input element to select a spreadsheet and clicking the export button. | ||||
| 5) To build a standalone app, run the builder: | ||||
| 
 | ||||
| ```bash | ||||
| npx -p nw-builder nwbuild --mode=build --version=0.83.0 --glob=false --outDir=../out ./ | ||||
| npx -p nw-builder nwbuild --mode=build --version=0.85.0 --glob=false --outDir=../out ./ | ||||
| ``` | ||||
| 
 | ||||
| This will generate the standalone app in the `..\out\` folder. | ||||
|  | ||||
| @ -21,7 +21,7 @@ Each browser demo was tested in the following environments: | ||||
| | Browser     | Date       | | ||||
| |:------------|:-----------| | ||||
| | Chrome 119  | 2023-11-30 | | ||||
| | Safari 16.6 | 2023-09-17 | | ||||
| | Safari 17.3 | 2024-03-12 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|  | ||||
| @ -39,9 +39,9 @@ This demo was verified in the following deployments: | ||||
| 
 | ||||
| | App       | Platform     | Date       | | ||||
| |:----------|:-------------|:-----------| | ||||
| | Photoshop | ExtendScript | 2023-09-24 | | ||||
| | InDesign  | ExtendScript | 2023-09-24 | | ||||
| | InDesign  | CEP          | 2023-09-24 | | ||||
| | Photoshop | ExtendScript | 2024-03-12 | | ||||
| | InDesign  | ExtendScript | 2024-03-12 | | ||||
| | InDesign  | CEP          | 2024-03-12 | | ||||
| | InDesign  | UXP          | 2024-03-11 | | ||||
| 
 | ||||
| ::: | ||||
| @ -232,6 +232,32 @@ manifest must include the following flags to enable `cep.fs`: | ||||
| </CEFCommandLine> | ||||
| ``` | ||||
| 
 | ||||
| :::caution pass | ||||
| 
 | ||||
| With newer versions of Creative Cloud apps, a special player debug mode must be | ||||
| enabled to use unsigned extensions. The command depends on the CEP version. | ||||
| 
 | ||||
| InDesign and PhotoShop 2024 use CEP 11. In the examples, the `11` should be | ||||
| replaced with the appropriate CEP version number. | ||||
| 
 | ||||
| On Windows, within the registry key `HKEY_CURRENT_USER\SOFTWARE\Adobe\CSXS.11`, | ||||
| a string value named `PlayerDebugMode` must be set to 1. This can be set in | ||||
| PowerShell using the `reg` command: | ||||
| 
 | ||||
| ```pwsh | ||||
| reg add HKCU\SOFTWARE\Adobe\CSXS.11 /v PlayerDebugMode /t REG_SZ /d 1 /f | ||||
| ``` | ||||
| 
 | ||||
| On macOS, the setting must be added to `com.adobe.CSXS.11.plist` . After writing | ||||
| to the property list, `cfprefsd` must be restarted: | ||||
| 
 | ||||
| ```bash | ||||
| defaults write com.adobe.CSXS.11.plist PlayerDebugMode 1 | ||||
| killall cfprefsd | ||||
| ``` | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| ### Reading Files | ||||
| 
 | ||||
| The second argument to `cep.fs.readFile` is an encoding. `cep.encoding.Base64` | ||||
|  | ||||
| @ -190,11 +190,11 @@ Each browser demo was tested in the following environments: | ||||
| 
 | ||||
| | Browser     | Date       | Comments                                | | ||||
| |:------------|:-----------|:----------------------------------------| | ||||
| | Chrome 121  | 2024-02-25 |                                         | | ||||
| | Edge 116    | 2023-09-02 |                                         | | ||||
| | Safari 16.6 | 2023-09-02 | File System Access API is not supported | | ||||
| | Brave 1.57  | 2023-09-02 | File System Access API is not supported | | ||||
| | Firefox 118 | 2023-10-09 | File System Access API is not supported | | ||||
| | Chrome 122  | 2024-03-12 |                                         | | ||||
| | Edge 122    | 2024-03-12 |                                         | | ||||
| | Safari 17.3 | 2024-03-12 | File System Access API is not supported | | ||||
| | Brave 1.59  | 2024-03-12 | File System Access API is not supported | | ||||
| | Firefox 122 | 2024-03-12 | File System Access API is not supported | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|  | ||||
| @ -686,7 +686,11 @@ contents of the first sheet as CSV rows. | ||||
| 
 | ||||
| :::note Tested Deployments | ||||
| 
 | ||||
| This demo was last tested on 2023 November 04 against Hermes version `0.12.0`. | ||||
| This demo was tested in the following deployments: | ||||
| 
 | ||||
| | Architecture | Hermes   | Date       | | ||||
| |:-------------|:---------|:-----------| | ||||
| | `darwin-x64` | `0.12.0` | 2024-03-13 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								docz/static/reactnative/ios-cert.png
									
									
									
									
									
										Normal file
									
								
							
							
								
									
								
								
								
								
								
									
									
								
							
						
						
									
										
											BIN
										
									
								
								docz/static/reactnative/ios-cert.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 922 KiB | 
							
								
								
									
										
											BIN
										
									
								
								docz/static/reactnative/ios-mgmt.png
									
									
									
									
									
										Normal file
									
								
							
							
								
									
								
								
								
								
								
									
									
								
							
						
						
									
										
											BIN
										
									
								
								docz/static/reactnative/ios-mgmt.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 938 KiB | 
							
								
								
									
										
											BIN
										
									
								
								docz/static/reactnative/ios-trust.png
									
									
									
									
									
										Normal file
									
								
							
							
								
									
								
								
								
								
								
									
									
								
							
						
						
									
										
											BIN
										
									
								
								docz/static/reactnative/ios-trust.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.1 MiB | 
							
								
								
									
										
											BIN
										
									
								
								docz/static/reactnative/xcode-sign-cap.png
									
									
									
									
									
										Normal file
									
								
							
							
								
									
								
								
								
								
								
									
									
								
							
						
						
									
										
											BIN
										
									
								
								docz/static/reactnative/xcode-sign-cap.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 118 KiB | 
		Loading…
	
		Reference in New Issue
	
	Block a user