Here is a present for you :)
This one has some very nice new features which include a new CloudStore Tab for the device IDE and a new SSH/Device Terminal for both the WiFi IDE and the device IDE.
I've swapped out the old Chat tab for a new Discord Tab since the features available in Discord are much more advanced than our home-made chat app. You can use the basic features of Discord inside this new tab, but you may wish to install the official Discord app instead if you want notifications and audio features.
This is the Discord - DroidScript invite link:
Also, checkout the new new GitHub
long-press menu option
on the app icons (for premium users) so you can backup your apps to github.com
and track your code changes like a pro :)
We've added a bunch of new Native samples, including the 'YouTube Player', 'Google Maps', 'Card Flip' and 'Card Animation' sample.
There is however a small price to pay for this extra speed, as the J2V8 engine has no DOM and no XMLHttpRequest object which might make some third party js libraries complain and/or fail. We have however provided a basic 'polyfill' for XMLHttpRequest which uses app.HttpRequest() internally and should work for many situations.
We've also added More support for SAF (storage access framework) which allows you to read and write and list files in folders outside of your app's scoped storage sandbox (including the external flash cards)
There are now 3 special keywords which can be used at the front of file paths to indicated that you want to access the internal sdcard, the external sdcard or the app's default storage location -
These keywords should be used from now on in preference to '/sdcard/..' style paths (note that they are case sensitive).
Note: You must ask for permission from the user with the app.GetPermission() method if you want to read or write files outside of your app's sandbox area on Android 10 or higher (scoped storage). Please check out the new 'Storage Access' sample to see how to use these new SAF features.
The build.json file is now fully supported in AAB files. Here is an example that enables deep links (intercepting urls with your app instead of the default browser) -
The latest version is available on Google Play, but you can also get the APK directly here if you prefer it that way, or you don't have Google Play installed.
: Premium features are still available to those that don't have Google Play installed or can't connect to the internet often, for a one-off $99 Paypal
payment (i.e. premium for life
). Please contact sup...@droidscript.org
for more info.
Lastly and certainly not least, this version also has support for our up-coming, Multi-Platform Hybrid Apps
and awesome WYSIWYG Layout Extension
so you can have a play with that if 'experiments
' is enabled in the DS about box. The Layout extension (found in the WiFi IDE) is getting pretty stable now and hopefully we can start using it for real very soon. Please join the beta forum if you want to start using the Hybrid apps in the near future. (send a request to sup...@droidscrpt.org
Special thanks go to Jumar Hamac and Cemal Gönültaş for their hard work creating many of these fantastic new features.
These are all the changes since the last official release -
- Chat extension now deleted on install (using Discord now).
- UpdateProgressBar now has 'doevents' option to force ui update in v8 mode.
- Fixed issue with slow APK builds.
- Fixed issue with APK install just showing folder after build.
- Hybrid apps are now auto-detected (don't need cfg.Hybrid)
- Hybrid apps now removed from samples list, use UI plugin docs instead.
- Main DS App class changed to DsApp, so won't clash with Hybrid/Enjine apps.
- Added include() function for compatibility with Hybrid/Enjine apps.
- Updated Hybrid templates.
- Fixed crash with Notification listener during WhatsApp messages.
- Hybrid components docs now visible after UI plugin install.
- Layout extension now automatically installed from UI plugin.
- Progress bar now shown when extracting assets at startup.
- Added new 'CloudStore' tab to device IDE.
- Added new SSH/Device Terminal tab to device IDE.
- Switched device IDE 'Chat' tab to use Discord.
- Added new 'RemoteTerminal' SSH extension to wifi IDE.
- Move UI controls into an updatable internal DS plugin.
- Support ds:/* style paths in HTML elements (eg. ds:/Sys/app.js).
- The 'FontAwesome' option can now be used with app.CreateTabs.
- Changed wifi IDE right side tabs to show icons only.
- Changed node.Run() method to use separate VM contexts on each call.
- Changed FileDiff extension to full browser width.
- Fixed problem of ide.AddModule() only working once after DS restart.
- Added link to playstore unsubscribe page.
- APKBuilder now defaults to target API level 31.
- Added 'YouTube Player' and 'Google Maps' samples.
- Added 'Card Flip' and 'Card Animation' samples.
- Added 'Shopping Cart' sample.
- Fixed bugs with device IDE image chooser.
- Added ext.displayWidth + ext.displayHeight to extensions API.
- Added ext.Play, ext.Stop, ext.Save to extensions API.
- Fixed bug causing notification listener to fail.
- Fixed bug with fine/coarse location in AABs.
- Made AAB builder more reliable (was often getting stuck at 99%)
- Added new WYSIWYG Layout extension to WiFi IDE (in experiments mode)
- Added version number to APK/AAB build output files.
- Added SPK auto-save feature when building APKs/AABs.
- Fixed problem with turkish characters in control callbacks.
- Added new app.eventSource property.
- Fixed extraction issues with APK asset files containing 'dots'.
- Fixed mui.js not found bug when building Node APKs.
- Fixed build.json being ignored for AAB files.
- Fixed debug messages from NodeJS apps not readable.
- Improved !addmodule command to support versions (eg. mi...@1.6.0)
- Added new GitHub feature for premium users.
- Added SetSpeed and SetPitch methods to MediaPlayer.
- Plugins can now contain sub-folders ('docs' sub-folder is removed in APK build).
- Added support for Cancel(id) or Cancel('*') in notification listener.
- JS errors from remote pages are now ignored for HTML and Hybrid apps.
- Multiple cfg.Hybrid app samples added when in 'experiments' mode.
- Re-organized app templates.
- Fixed app.SaveText() causing 'Storage' permission request.
- Added 'fillscreen' and 'fullscreen' options for Custom Dialogs.
- Updated app.ChooseFile() to support GoogleDrive,OneDrive and DropBox.
- Added 'nodownload' option to app.ChooseFile (just returns uri, no downloading of files).
- Added 'persist' option to app.ChooseFile (persists file permission after reboot).
- Added 'pretty' option to app.Uri2Path (returns DS style paths).
- AddPermission 'alert' bug fixed (introduced in 2.51b1).
- Fixed playback of transparent animated gifs in Image control.
- APKBuilder is no longer sensitive to spaces around brackets of LoadPlugin call.
- List.OnTouch() event now returns unicode chars with correct upper case hex codes.
- Transparent apps now startup with zero size (to prevent black flash).
- Added cfg.Legacy option to enable various legacy transparent app behaviour.
- Added app.UpdateUI() method for forcing UI drawing during heavy processing.
- Enabled 3rd party cookies by default for webviews, fetch and xmlHttpRequest.
- Fixed broken app.SetAlarm() method.
- app.ListFolder() now supports SAF (can list outside scoped storage).
- Added app.ListPermissions and app.RemovePermissions.
- Added support for /Internal/* and /External/* SAF paths.
- app.GetPermission() now supports 'external' and 'internal' keywords.
- Replaced 'Sdcard Access' sample with 'Storage Access' sample.
- Improved permissions detection for file:///android_asset paths.
- Fixed 'Share SPK' for scoped storage devices.
- Fixed app.SendFile, app.SendImage, app.SendMail for scoped storage devices.
- Added QUERY_ALL_PACKAGES permission to X version.
- Removed default params from edit/mui.js (older webviews don't not like it)
- Added web.Func(name,args...) for easy calling of functions defined in a WebView.
- Added app.Func(name,args...) for easy calling of main script functions from a WebView.
- app.SimulateTouch() now copes with lower case keywords.
- Fixed 'atob' issue with console logging in NodeJS apps.
- Added new GetDocumentFile() method to Plugin parent object.
- Added new app.GetRouterAddress() method.
- Added tabs.SetTextSize(size,mode) method.
- Added cfg.Fast mode for premium users (3x faster apps!)
- Added XMLHttpRequest polyfill for Fast mode.
- Added 'Query Images' and 'Query Videos' samples.
- Fixed crash when building APKs/AABs for Html apps.
Have fun :)