forked from sheetjs/docs.sheetjs.com
		
	ns-android
This commit is contained in:
		
							parent
							
								
									8c754069bf
								
							
						
					
					
						commit
						28570a8fbd
					
				| @ -721,38 +721,30 @@ The Android demo has been tested in Windows 10 and in macOS. | ||||
| Test the app in the Android simulator: | ||||
| 
 | ||||
| ```bash | ||||
| npm run android | ||||
| npx react-native start | ||||
| ``` | ||||
| 
 | ||||
| Once Metro is ready, it will display the commands: | ||||
| 
 | ||||
| ``` | ||||
| r - reload the app | ||||
| d - open developer menu | ||||
| i - run on iOS | ||||
| a - run on Android | ||||
| ``` | ||||
| 
 | ||||
| Press `a` to run on android. | ||||
| 
 | ||||
| After clicking "Press to Export", the app will show an alert with the location | ||||
| to the generated file. | ||||
| to the generated file (`/data/user/0/com.sheetjspres/files/Presidents.xlsx`) | ||||
| 
 | ||||
| In the Android simulator, pulling the file requires additional steps.  This | ||||
| command will pull a Base64-encoded string from the simulator: | ||||
| In the Android simulator, pulling the file requires additional steps: | ||||
| 
 | ||||
| ```bash | ||||
| adb exec-out run-as com.sheetjspres base64 files/Presidents.xlsx > pres.b64 | ||||
| adb root | ||||
| adb pull /data/user/0/com.sheetjspres/files/Presidents.xlsx Presidents.xlsx | ||||
| ``` | ||||
| 
 | ||||
| Decoding the file requires an OS-specific command: | ||||
| 
 | ||||
| <Tabs> | ||||
|   <TabItem value="windows" label="Windows"> | ||||
| 
 | ||||
| ```powershell | ||||
| certutil -decode .\pres.b64 .\Presidents.xlsx | ||||
| ``` | ||||
| 
 | ||||
|   </TabItem> | ||||
|   <TabItem value="macos" label="macOS"> | ||||
| 
 | ||||
| ```bash | ||||
| base64 -D pres.b64 > Presidents.xlsx | ||||
| ``` | ||||
| 
 | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
| This command generates `Presidents.xlsx` which can be opened. | ||||
| 
 | ||||
| :::info Device Testing | ||||
|  | ||||
| @ -17,10 +17,15 @@ The "Complete Example" creates an app that looks like the screenshots below: | ||||
| 
 | ||||
| <table><thead><tr> | ||||
|   <th><a href="#demo">iOS</a></th> | ||||
|   <th><a href="#demo">Android</a></th> | ||||
| </tr></thead><tbody><tr><td> | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| </td><td> | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| </td></tr></tbody></table> | ||||
| 
 | ||||
| ## Integration Details | ||||
| @ -63,7 +68,8 @@ const wb = read(ab); | ||||
| 
 | ||||
| #### Writing data | ||||
| 
 | ||||
| `getFileAccess().writeBufferAsync` can write data: | ||||
| `getFileAccess().writeBufferAsync` can write data. iOS supports `Uint8Array` | ||||
| directly but Android requires a true array of numbers: | ||||
| 
 | ||||
| ```ts | ||||
| import { getFileAccess } from '@nativescript/core'; | ||||
| @ -75,15 +81,15 @@ const url = get_url_for_filename("SheetJSNS.xls"); | ||||
| const u8: Uint8Array = write(wb, { bookType: 'xls', type: 'binary' }); | ||||
| 
 | ||||
| /* attempt to save Uint8Array to file */ | ||||
| await getFileAccess().writeBufferAsync(url, u8); | ||||
| await getFileAccess().writeBufferAsync(url, global.isAndroid ? (Array.from(u8) as any) : u8); | ||||
| ``` | ||||
| 
 | ||||
| ## Demo | ||||
| 
 | ||||
| :::note | ||||
| 
 | ||||
| This demo was tested on an Intel Mac on 2023 April 03.  NativeScript version | ||||
| (as verified with `ns --version`) is `8.5.1`. | ||||
| This demo was tested on an Intel Mac on 2023 May 07.  NativeScript version | ||||
| (as verified with `ns --version`) is `8.5.3`. | ||||
| 
 | ||||
| The iOS simulator runs iOS 16.2 on an iPhone 14 Pro Max. | ||||
| 
 | ||||
| @ -91,6 +97,8 @@ The iOS simulator runs iOS 16.2 on an iPhone 14 Pro Max. | ||||
| 
 | ||||
| 0) Follow the official Environment Setup instructions | ||||
| 
 | ||||
| ### Base Project | ||||
| 
 | ||||
| 1) Create a skeleton NativeScript + Angular app: | ||||
| 
 | ||||
| ```bash | ||||
| @ -262,7 +270,7 @@ Restart the app process and two buttons should show up at the top: | ||||
|       const u8: Uint8Array = write(wb, { bookType: 'xls', type: 'buffer' }); | ||||
| 
 | ||||
|       /* attempt to save Uint8Array to file */ | ||||
|       await getFileAccess().writeBufferAsync(url, u8); | ||||
|       await getFileAccess().writeBufferAsync(url, global.isAndroid ? (Array.from(u8) as any) : u8); | ||||
|       await Dialogs.alert(`Wrote to SheetJSNS.xls at ${url}`); | ||||
|     } catch(e) { await Dialogs.alert(e.message); } | ||||
|     // highlight-end | ||||
| @ -296,3 +304,40 @@ Restart the app after saving the file. | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| ### Android | ||||
| 
 | ||||
| Launch the app with `ns run android`.  If the app does not automatically launch, | ||||
| manually open the `SheetJSNS` app. | ||||
| 
 | ||||
| The app can be tested with the following sequence in the simulator: | ||||
| 
 | ||||
| - Tap "Export File".  A dialog will print where the file was written. Typicaly | ||||
| the URL is `/data/user/0/org.nativescript.SheetJSNS/files/SheetJSNS.xls` | ||||
| 
 | ||||
| - Pull the file from the simulator: | ||||
| 
 | ||||
| ```bash | ||||
| adb root | ||||
| adb pull /data/user/0/org.nativescript.SheetJSNS/files/SheetJSNS.xls SheetJSNS.xls | ||||
| ``` | ||||
| 
 | ||||
| - Open `SheetJSNS.xls` with a spreadsheet editor. | ||||
| 
 | ||||
| After the header row, insert a row with cell A2 = 0, B2 = SheetJS, C2 = Library: | ||||
| 
 | ||||
| ``` | ||||
| id | name       | role | ||||
|  0 | SheetJS    | Library | ||||
|  1 | Ter Stegen | Goalkeeper | ||||
|  3 | Piqué      | Defender | ||||
| ... | ||||
| ``` | ||||
| 
 | ||||
| - Push the file back to the simulator: | ||||
| 
 | ||||
| ```bash | ||||
| adb push SheetJSNS.xls /data/user/0/org.nativescript.SheetJSNS/files/SheetJSNS.xls | ||||
| ``` | ||||
| 
 | ||||
| - Tap "Import File".  A dialog will print the path of the file that was read. | ||||
|   The first item in the list will change. | ||||
							
								
								
									
										
											BIN
										
									
								
								docz/static/mobile/nsand.png
									
									
									
									
									
										Normal file
									
								
							
							
								
									
								
								
								
								
								
									
									
								
							
						
						
									
										
											BIN
										
									
								
								docz/static/mobile/nsand.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 62 KiB | 
		Loading…
	
		Reference in New Issue
	
	Block a user