Hello Paolo,
Thanks for sharing that information with us. Certainly, client side databases are something not very well supported, and, for example, can have some limitations in terms of the available storage space. Can be a good thing, of course, and, apparently the project is used by some relevant projects.
However, my point is that maybe not all the times we need something like a relational database in the client side. For example, we can use the app's local storage to store information in an JSON way, which can be set and get when needed.
We can also use the app's storage to store other kind of information in addition to certain JSON, for example, something ready to be used by the ParseVariables action. If our target allows to use Cordova, we can write files too in order to store information in the client side.
And, finally, we can use an app's server... and therefore a server's database (MySQL, Oracle or whatever else) in order to store our app's information in the server side: this means we don't have the possible limitations in the client side, of course.
Anyway thanks again for share the project with us, Paolo: again, I only want to remark that maybe not all the projects requires something like that, but, of course, may can be useful in certain specific projects, or just a good tool to take in consideration.
Hello Amin,
Glad to know that you got it. :-)
Hello Paolo,
If we are talking about an AB Select control, we can add new items using the Select Array "Items". If we are talking about an Select control, but not an AB one, we can add more options to the control in various ways, for example, take a look at this StackOverflow thread.
About the Select value, if we are talking about an AB control, in fact we deal with the selected item index and the item text, to say like that, not exactly the value, and can be retrieved like in the below code:
If we are talking about how to get the value of a Select control which is not an AB control, we can do it in a way like this:
If what we want to get is the Text of the selected value, we can write something like the below code:
Hello Paolo,
I think we can consider this a more or less "advanced" feature... and, in fact, you already can use "document.getElementsByClassName", or, better, "document.querySelector", or maybe better... an jQuery selector (remember that jQuery is included in our apps by default) and pick classes like "custom-control-input" and "form-control". With these two classes you can match all the inputs controls in your app's view.
Below is a bit of code using jQuery that may you can find of your interest:
If you need any kind of particular help, please, post it here, Paolo.
Hello Amin,
When you mention that you try with "App.RootScope.test"... are you trying with "window.App.RootScope.test"?
On the other hand, maybe passing params to the AB app's view can be enough? (Take a look at the ViewParams app sample)
Additionally... maybe you can use the app's local storage or cookies? Take a look at the GetOption and GetCookie actions.
Hello Paolo,
Any value different than an empty one, disable the control. So, what you must to do to enable it is this:
Or you can also use the "Enable" and "Disable" actions instead of the "SetVar" one.
Hello Amin,
Certainly we need to test it, because, some unexpected problem can occur. However, I try to create an Cordova app from the scratch using the command line. Then, I put an "www" of an App Builder's app inside the first created one. In the index.html of the first app I place an iframe, and, point the "src" of the iframe to the "index.html" of the App Builder's app.
The above works, Amin. Of course this requires more tests, as I said, but, in principle, work here with simple sample apps.
On the other hand, if we can see working an AB app running in an non AB app, probably we can do also the contrary: an non AB app, running in an AB app.
You can download here an "hello" Cordova app which run in an Iframe the "Database" sample of AB:
https://www.decsoftutils.com/temp/hello.zip
https://www.decsoftutils.com/temp/hello.apk
Anyway, I start to think that certainly insert an app inside an iframe may can have some unexpected result. On the other hand, what happen if the inserted/embedded app have some specific Cordova requeriments? Maybe its enough than the first app (the host app) add the right stuff (like plugins) and can these be available for the inserted app?
The above questions must be answered... so, in principle, depending on the app, the above iframe solution can be good or not. Apparently the sample that I prepare works as expected.
Hello Amin,
I think you can do it by including one app's files inside the other app's files, so, the second one can reach the first one files and viceversa. Then may you can use an Iframe control in one app to load certain app's file URL of the other app. This probably can be the most easy way to do it, but I am not sure if can be enough or not...
Hello Amin,
Yes; you are right. Apparently the Cordova's "Whitelist" plugin is required... and, for that reason, App Builder includes it by default in both the Cordova's configuration file and the generated BAT and SHELL files... so you are not using these files Amin? Anyway, glad to know that you got it.
Hello Amin,
An HTTP 404 error code means that the server can't be reached, certainly. Maybe are you using "local URLs" (that points to your local server) when debugging? Then you must prepare the right URLs with to reach the real internet server. We can set the URLs of HTTP Client controls in design but also in runtime, with the "HttpSetUrl" action, for example.
On the other hand, you mention Phonegap. I think this doesn't made any difference, but, consider to use Apache Cordova instead: App Builder is better integrated with Apache Cordova. But, again, in principle, this do not matter. Additionally, check if your device have an internet connection! But an 404 error is clear: the server can't be reached.
One more thing: App Builder nor Apache Cordova nor Phonegap, don't touch the URLs of the HTTP Clients, so, probably the problem is not specifically related with these software. Just be sure that you are trying to use the right URLs, Amin.
Hello Paolo,
I understand. Well. It's the first time that I know about that resource or "codelab". From the app's options (look at the app's options dialog, under the "WebApp > Progressive WebApp"), you can check the appropriate checkbox in order to create an Progressive Web App manifest. But, I am not quite sure if this is exactly what you wanted, since this alone causes that some browsers shown to the user, in the context menu, a way to add the app's icon in the device home screen.
Honestly, Paolo, I don't know what to say... you need to study the "codelab" and try to folow the instructions. I have no time right now to try that for you. For example, may you need to create an specific manifest, or add some pure Javascript code, and, maybe something more. The point is: if that can work in an HTML app... then must work in AB apps too. So please, study the instructions, do your tests, and, if you find some specific problem, I will try to help you.
Maybe I can take a look when I have some free time... but, certainly, the project don't appear quite interesting to me at a first view: apparently it's limited to one sole browser, which is not very good, in my opinion. However, again, try it and, if you need some specific help, post it here in order to try to help you.
Hello Paolo,
I am not quite sure if what you wanted is to show some kind of advertisement or if you refer to local notifications. In the first case, you can take a look at the AdMob sample, which uses certain Apache Cordova plugin and allows to shown "interstitials", which maybe is what you wanted.
If you refer to local notifications, then you must study this Apache Cordova plugin, for example. You can get some help by take a look at the "CordovaPlugins" sample, or other samples like "SendSMS", which also uses Apache Cordova plugins.
If you refer to other thing, please, post it here and I will try to help you.
Hello Bryce,
Maybe this is not an easy to answer question. That is, what HTML Compiler uses is the latest available WebBrowser component of Microsoft Windows, setting the "emulate" option to be Internet Explorer 11. But, if I am not wrong, we can't say an specific version of Javascript which is used by this browser, because probably support various of them in various ways.
Do you have some specific problem Bryce?
Hello Paolo,
You can use the "popover" related variables, like in the below code:
Take a look at the General considerations topic in the controls' help, in which these and other common variables are explained.
Everybody can read the DecSoft support forum for learning purposes, however only DecSoft customers can post new threads. Purchase one or more licenses of some DecSoft products in order to give this and other benefits.