There are two types of web containers:
- The full screen background web container
- Web containers as components that can fit into scrolling sections, etc. These are different from the first one, and they haven't changed from the first version.
the only part that has changed is the first one, which means there is only ONE
$webcontainer. I mean, literally it's impossible to have multiple full screen views that fit into a single view simultaneously, you can only see one.
Just answering your requirements based on my understanding:
1. Jasonette has caching features through
$cache (storing under a URL) or
$global (storing globally app-wide) actions. You can call them from all agents, which
$webcontainer is one of. So you can store things natively from your web app.
2. As mentioned above, there is only one
$webcontainer which the new version (described in https://medium.freecodecamp.org/how-to-turn-your-website-into-a-mobile-app-with-7-lines-of-json-631c9c9895f5) covers.
3. You mention limited formatting as the reason you want to use web containers, could you share this in detail? There may already be options that exist in the framework that you are not aware of, and if not, and if it makes sense we should add them. I don't think it's a good idea to use web view just because of this issue.
4. In the worst case--although not really "worst"--you should just use the
$webcontainer and embed a SINGLE web page, and then communicate everything inside the web container with the native view, assuming you really want to use your web page. You can still make it work almost natively as mentioned in https://medium.freecodecamp.org/how-to-turn-your-website-into-a-mobile-app-with-7-lines-of-json-631c9c9895f5
5. Just to clarify one more time, there are two types of web containers, the more advanced one is the one that's described under
$jason.body.background and displays itself as the full screen background of a view. This is the one that you now can interact with, as well as declare them by URL, etc. The other type is read-only web containers that can be incorporated into scrolling items just like any other native components like image, label, etc. These are still for display purposes only and not to be used for interaction, and will likely not change.
Hope this makes sense. I actually tried my best to include all of this in the documentation http://docs.jasonette.com/web/ so feel free to take a look at that too for more comprehensive info.
I have a couple of questions about ai2, and since you're here, hope you could help me understand:
- From what I see, ai2 is a compiled language where you generate their DSL by using their block-like interface, and then finally compile the DSL into code? (In case of Jasonette, all apps you build with Jasonette are exactly the same code because nothing is compiled and the JSON markup is fetched and interpreted into native UI in realtime whenever a user opens the app, like loading a website in a web browser)
- Is this for Android only? I couldn't find a documentation on how they internally work.
- Do you have any example of their low level language I can take a look? Appreciate it.