In my day job at OneTwo, we use ABM in most of our projects. But sometimes we just miss that extra BANano can do on the Browser side. For new projects, we mostly use a BANanoServer instead of an ABMServer, but we still have many ABM apps running and continue to write extra functionalities to those apps. What if we could use BANano generated code IN ABMaterial?
Hence this new idea came up: If BANano could generate .b4xlib libraries, writing the ‘glue’ between ABM and BANano, that would be a great asset to add features to ABM!
Check out point 7 for more info on how it is done!
1. [NEW] BANano.SetTabNotification(number As String)
Adds a notification number to the browsers tab. e.g. ‘(2) My Website’
2. [NEW] BANano.DeepClone(Obj as Object)
Deep Clones an object (e.g. a map)
3. [NEW] BANano.CreateElement(Tag as String) As BANanoElement
Creates a BANanoElement, not attached to something
4. [NEW] Use you own favicon.ico
If a favicon.ico is found in the /Files folder, it is used instead of the default BANano one.
5. [NEW] Optimisations saved to file
As the log only shows the first x of optimizations, the full list is now saved in OPTIMISATIONS.txt
This part of the engine has been rewritten.
7. [NEW] BANano.BuildAsB4XLibForABM(LibraryVersion As String)
New transpilation to create ABMBANano b4xlib libraries for ABMaterial.
More info: https://www.b4x.com/android/forum/threads/abmaterial-banano-making-banano-libraries-for-abmaterial.126828/#post-793319
8. [NEW] BANano.RaiseEventToABM(eventName As String, eventParamNames as List, eventParamValues as List, Description as String)
Method to raise an event to a ABM, maximum two params because B4J only supports this maximum. Use a Map is more are needed.
The Description will be added to the generated .bas file for ABM as comment.
See 7 for usage.
9. [NEW] BANano.Spread(variable as Object) as Object
Adds the spread operator (three dots) before the variable.
10. [CHANGE] BANanoGeoLocation.GetCurrentGeoLocation() renamed to BANanoGeoLocation.GetCurrentPosition()
13. [NEW] BANanoSQL.NextInserted( tableName As String, FieldName as String)
Returns the next auto incremented value that will be used
14. [NEW] BANanoEvent.Target() As Object
New property, can contain the Target description on which the event was triggered.
15. [NEW] TranspilerOptions. DoNotDeleteFolderOnCompilation( fullPath as String)
Prevents the Transpiler from deleting this folder. Useful e.g. for assets that are not in the /Files folder.
16. [NEW] BANano_Online() and BANano_OffLine() events
Raises an event when the webApp goes Online of Offline.
Can ONLY be used in Main!
17. [NEW] New components in SKSkeleton
18. [FIX] Several smaller transpiler fixes