New version 2.57 now available, with tons of awesome new features!

814 views
Skip to first unread message

Dave

unread,
Dec 4, 2022, 1:54:22 PM12/4/22
to DroidScript
Hi Guys,

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's a new cfg.Fast config option that can make your apps run up to 3X FASTER!  This is also a premium option and works by replacing the standard JavaScript engine (Android WebView) with an alternative (and much faster one called 'J2V8').  

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 - 

/Internal/...
/External/...
/Storage/...

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) - 

{
    "manifest": {
        "minSdkVersion": 24,
        "targetSdkVersion": 31,
        "homeScreen": false,
        "removePermissions": "WRITE_EXTERNAL_STORAGE,CHANGE_WIFI_MULTICAST_STATE",
        "urlScheme": "https,http",
        "urlHost": "mywebsite,bigwebsite",
        "urlPathPrefix": "/mobile,/fred"
    }
}



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.


Note: 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 -

DS 2.57
- 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.

DS 2.56b1
- 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.

DS 2.55b1
- 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.

DS 2.54b1
- 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.

DS 2.53b1
- 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.

DS 2.52b1
- 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.

DS 2.51b1_p3
- Fixed app.SaveText() causing 'Storage' permission request.
- Added 'fillscreen' and 'fullscreen' options for Custom Dialogs.

DS 2.51b1_p2
- 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).

DS 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.

DS 2.51a1
- 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.

DS 2.50p1
- Added 'Query Images' and 'Query Videos' samples.
- Fixed crash when building APKs/AABs for Html apps.

Have fun :)

wheelie tips

unread,
Dec 5, 2022, 12:19:55 AM12/5/22
to DroidScript
Good morning, Kudus on the latest version! 
After upgrading to ver 2.57 the app doesn't recognize I'm a premium user, what should I do to fix this?
Best,
WT 

Ignas Bu

unread,
Dec 7, 2022, 5:15:19 AM12/7/22
to DroidScript
Ver 2.57
Probably, something wrong happened with app.CreateNotification()
"Notifications" and "Notification Listener" samples does not work anymore: Cant read properties of null (reading 'SetMessage') or (reading 'SetOnNotify')

Thanks for updates and new features.

Tjerk Herckenrath

unread,
Dec 7, 2022, 9:40:41 AM12/7/22
to DroidScript
The WiFi editor is complaining about /Extensions/RemoteTerminal/Left/lib/extensions.js:12 Uncaught TypeError: event.data.split is not a function. I'm running it in Chrome on a ChromeBook.

It's annoying but doesn't seem to really affect the functionality.

Tjerk Herckenrath

unread,
Dec 7, 2022, 9:55:43 AM12/7/22
to DroidScript
app.SetOnDebug() causes reams of:

Script Error: 1: ReferenceError: _cbMap is not defined, Line 1, event


Tjerk Herckenrath

unread,
Dec 7, 2022, 9:59:31 AM12/7/22
to DroidScript
app.Debug() produces no output, no warning and no error.

Tjerk Herckenrath

unread,
Dec 7, 2022, 10:46:47 AM12/7/22
to DroidScript
app.OpenDatabase() causes: Script Error: 1: ReferenceError: cordova is not defined, Line 1, event

My app uses:
cfg.Node
cfg.MUI
cfg.Dark
cfg.Fast

Dave

unread,
Dec 7, 2022, 12:06:21 PM12/7/22
to DroidScript
@tjerkher: You can't combine cfg.Node and cfg.Fast they run different V8 engines

Also, I'm not sure app.OpenDatabase() will work in cfg.Fast mode because it might use DOM, I will check.

Dave

unread,
Dec 7, 2022, 12:07:39 PM12/7/22
to DroidScript
@tjerkher:  How are you using app.SetOnDebug() and app.SetDebug()? show us some code snippets.

Tjerk Herckenrath

unread,
Dec 7, 2022, 12:41:44 PM12/7/22
to DroidScript
I've been running my app with both cfg.Node and cfg.Fast until the update.

Removing cfg.Fast fixed all the issues with my app, including app.SetOnDebug() and app.Debug().

Thanks for clearing this up :-)

Frédéric VARASTET

unread,
Dec 11, 2022, 5:42:09 PM12/11/22
to DroidScript
Hi guys,
How do I use the  UpdateProgressBar 'doevents' option please?
My old apps having an app.UpdateProgressBar(progress) stop with a "Script Error: options is not defined, Line 152, app.js".

Thanks for the help, and for DS ;)
Fred

november

unread,
Dec 12, 2022, 12:19:24 PM12/12/22
to DroidScript
I get this frequently on 2.5 and just installed 2.5.7 and same thing - I open it first time and the popup wont go away / apps with Premium stuff in them wont run..I close the app, wait 30 seconds and open it again from launcher, and it 'gets it' that time.  I emailed about the lifetime license, would love to hear back. 

Right2TheV0id

unread,
Dec 17, 2022, 12:47:11 PM12/17/22
to DroidScript
The current app.UpdateProgressBar misses the "options" argument, giving an error (Script Error: options is not defined, Line 152, app.js).
You can fix it by adding the following lines on top of your script or at the beginning of your OnStart function:

app.UpdateProgressBar = function(percent, options) {
    prompt("#", "App.UpdateProgressBar(\f"+percent+"\f"+options);
};

Right2TheV0id

unread,
Jan 29, 2023, 6:29:41 PM1/29/23
to DroidScript
Using app.HttpRequest (e.g: running the example from the doc) instantly crash the app with the message "Script Error: URI malformed, Line 1"

Dave

unread,
Jan 31, 2023, 2:42:28 PM1/31/23
to DroidScript
Thanks, those last two reported bugs are fixed in the latest beta (coming later this week).

Right2TheV0id

unread,
Feb 1, 2023, 6:21:38 PM2/1/23
to DroidScript
You're welcome :)

I also noticed that double quotes in WiFi editor's immediate-code crashes DroidScript (worked fine in 2.50).
e.g. app.Alert( 'test' ) is ok but app.Alert( "test" ) produces "nothing" (at first), then switching from "New Activity" to DS reveals:

Script Error: 1: SyntaxError: Invalid or unexpected token
Source: file://event Line:1
Reply all
Reply to author
Forward
0 new messages