argonjs / argon-app Goto Github PK
View Code? Open in Web Editor NEWSource code for the Argon4 AR Web Browser
Home Page: https://app.argonjs.io/
License: Apache License 2.0
Source code for the Argon4 AR Web Browser
Home Page: https://app.argonjs.io/
License: Apache License 2.0
Need to have that send messages to the app to switch between embedded and full screen.
It's been reported that the path parsing for allowed origins is broken.
In other words, this works:
?(*.)mycoolarwebsite.com/**
But this does not:
?(*.)mycoolarwebsite.com/some/path**
I can't tell from the code in argon-vuforia-service.js, but if I call NativescriptVuforiaServiceDelegate.prototype.dataSetFetch and then call NativescriptVuforiaServiceDelegate.prototype.dataSetLoad before it finishes, will things work? I'd hope that two http.request() calls for the same file, almost immediately at the same time, would work as expected.
We've talked about giving the app the ability to tell users "Go stand on this spot to get a good AR view" and then fixing the location to the known location at that spot. To do this, we could create a custom reality with a command to set the location.
Tried argon4://shadow-test-argon-vuforia.glitch.me and it starts Argon4, but doesn't open the page
If I close the only web page, and then exit the page sorter, it should create a new empty page, much like when launching the app. Right now, there is no page.
Supporting the Moonshot and/or Daydream controllers would be great. Ideally, we expose them such that they work with the webvr polyfill, as vr controllers.
If I run multiple pages that use Vuforia, there are problems:
I understand that there are issues with shutting down and reinitializing vuforia frequently when apps switch around. We may need to consider how to deal with this more creatively (e.g., perhaps we switch to new vuforia contexts when loading new pages, but require the user to switch which page is tracking, perhaps by adding a menu item to a page with Vuforia tracking that says "re-start vuforia" or something). "Robust" is better than "elegant"
In some cases, a user may want to control which argon pages are visible (when multiple pages are opened). A simple first approach is a toggle to make only the top page visible. All pages will be visible in the carousel, but only the top page will be active on top of the reality. We should add a menu item to toggle between multi and single page AR view.
If I have lines
It looks like it's removing a line from the view when it removes the line from the storage. The view is wrong but the storage is right
If I open a page and click on something in the history, I go to that page.
If I select the url bar and the history/bookmark view comes up, and I press return, it goes somewhere else (sometimes to google, sometimes to a previous page I might have visited if I had been using this tab for a while).
If I go to one of the two built in examples URLs (e.g., the Samples), I get the page to select a demo. If I select a demo, it goes to it.
Now, if I tap in the URL bar to bring up the bookmarks again, and tap on the same demo URL (e.g., the Samples), instead of going back to the top level of the samples page, it takes me back to the demo I had selected.
It's like it's not keeping track of the navigation via a URL on the page
I think viewing a PDF inside the wkwebview sets the background to grey.
If I have a link inside and argon web page and follow it to a pdf, the background becomes grey. When swipe to go back, the background stays grey.
Not sure where this needs to be fixed.
When in the live video reality and I select the live video reality from the list, the reality freezes. The app doesn't crash so you can switch to another reality and come back to unfreeze it. Other realities do not have this problem.
We need to get the console working, and send the errors there. If there's an error in any scripts that runs in the animation loop, it's impossible to do anything except kill argon (since a new error pops up as soon as you kill the previous one).
If we want an alert, we should implement it with some other technique so it doesn't take over the app. It should be tied to the page, not the app.
Each page that requests a custom reality should get their own copy.
Right now, they are shared if they have the same URL, but that has two problems:
Each page that installs a custom reality should get their own copy. In the reality view, the title of the page should identify the page that requested it AND the type of reality.
We also need to use more descriptive text, not URLs, in this view.
Needs to be fixed!
If you slowly turn the phone 270 degrees (starting from portrait) landscape will be upside-down.
Also, if you quickly flip the phone 180 degrees from landscape right/left it will sometimes be upside-down.
Rotating to portrait then back to landscape fixes the issue.
Right now, if the front page is non-AR, it is shown. And if the front page is AR, all AR pages are shown.
It would be VERY useful in the application to be able to do one or more of the following:
This implies, perhaps, that a new event could be sent to an argon app to tell them if they are visible or hidden. And perhaps when hidden they only get the update Events, not render Events.
Hi, I'm just starting with NS and I'm experimenting with argon-app for my next project.
My configuration:
The app gets built, installed either in emulator or on actual device, but I get this error when I open the app and I can't find a solution.
I suspect this happens for one of the following reasons:
"nativescript-vuforia": "file:plugins/nativescript-vuforia"
The error:
An uncaught Exception occurred on "main" thread.
java.lang.RuntimeException: Unable to create application com.tns.NativeScriptApplication: com.tns.NativeScriptException:
Error calling module function
Error calling module function
Error calling module function
Error: com.tns.NativeScriptException: Failed to find module: "nativescript-vuforia", relative to: app/tns_modules/
com.tns.Module.resolvePathHelper(Module.java:159)
com.tns.Module.resolvePath(Module.java:60)
com.tns.Runtime.runModule(Native Method)
com.tns.Runtime.runModule(Runtime.java:580)
com.tns.Runtime.run(Runtime.java:574)
com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:17)
android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013)
android.app.ActivityThread.handleBindApplication(ActivityThread.java:4793)
android.app.ActivityThread.access$1900(ActivityThread.java:152)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1402)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:135)
android.app.ActivityThread.main(ActivityThread.java:5538)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
File: "<unknown>, line: 1, column: 265
StackTrace:
Frame: function:'require', file:'', line: 1, column: 266
Frame: function:'', file:'file:///data/data/edu.gatech.ael.argon4/files/app/components/common/argon-vuforia-provider.js', line: 4, column: 15
Frame: function:'require', file:'', line: 1, column: 266
Frame: function:'', file:'file:///data/data/edu.gatech.ael.argon4/files/app/components/common/AppViewModel.js', line: 7, column: 32
Frame: function:'require', file:'', line: 1, column: 266
Frame: function:'', file:'file:///data/data/edu.gatech.ael.argon4/files/app/app.js', line: 29, column: 22
Frame: function:'require', file:'', line: 1, column: 266
Error: com.tns.NativeScriptException: Failed to find module: "nativescript-vuforia", relative to: app/tns_modules/
com.tns.Module.resolvePathHelper(Module.java:159)
com.tns.Module.resolvePath(Module.java:60)
com.tns.Runtime.runModule(Native Method)
com.tns.Runtime.runModule(Runtime.java:580)
com.tns.Runtime.run(Runtime.java:574)
com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:17)
android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013)
android.app.ActivityThread.handleBindApplication(ActivityThread.java:4793)
android.app.ActivityThread.access$1900(ActivityThread.java:152)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1402)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:135)
android.app.ActivityThread.main(ActivityThread.java:5538)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
File: "<unknown>, line: 1, column: 265
StackTrace:
Frame: function:'require', file:'', line: 1, column: 266
Frame: function:'', file:'file:///data/data/edu.gatech.ael.argon4/files/app/components/common/argon-vuforia-provider.js', line: 4, column: 15
Frame: function:'require', file:'', line: 1, column: 266
Frame: function:'', file:'file:///data/data/edu.gatech.ael.argon4/files/app/components/common/AppViewModel.js', line: 7, column: 32
Frame: function:'require', file:'', line: 1, column: 266
Frame: function:'', file:'file:///data/data/edu.gatech.ael.argon4/files/app/app.js', line: 29, column: 22
Frame: function:'require', file:'', line: 1, column: 266
Error: com.tns.NativeScriptException: Failed to find module: "nativescript-vuforia", relative to: app/tns_modules/
com.tns.Module.resolvePathHelper(Module.java:159)
com.tns.Module.resolvePath(Module.java:60)
com.tns.Runtime.runModule(Native Method)
com.tns.Runtime.runModule(Runtime.java:580)
com.tns.Runtime.run(Runtime.java:574)
com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:17)
android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013)
android.app.ActivityThread.handleBindApplication(ActivityThread.java:4793)
android.app.ActivityThread.access$1900(ActivityThread.java:152)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1402)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:135)
android.app.ActivityThread.main(ActivityThread.java:5538)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
com.andro
Any idea how to fix it?
We should switch the keyboard to normal editing, and if the entered value does not "Decode" as a valid URL, send the result to a search engine (google, probably).
We should request searching only for docs that have an argon meta tag, and display the resulting page.
I navigate somewhere in streetview, then switch to live, then back. Streetview returns to being at the nearest location to me.
We need an option to open embedded links in a new tab. E.g. the user might press and hold the URL, and an option to open in a new tab would appear.
If I have a link with a target
<a target="_blank" href=" .... ">
to open a link in a new window/tab, it should open it in a new webview
We should also have a way for the user to decide if we should switch to the new view or not, like other browsers. Default should probably be "switch to the new one".
I just fixed a small bug that was changing "https" to "http". But, once we can access https sites, we still can't access ones that have self-signed certificates ... like argonjs.io! (GitHub uses certs that the browser doesn't like).
We need a UI to manage self-signed certs and probably some plumbing to keep track of things.
In samples.argonjs.io, if you go to webgl directions and switch to streetview, when you rotate, the app doesn't rotate (direction labels don't move)
Playing with the AFrame demos (aframe.io) in mobile Safari, I really like how they switch to full-screen mode when you rotate the phone. There are menus, decoration, etc., in portrait, but nothing in landscape.
At least in Mobile safari. In argon, the URL bar is still there.
We should support this properly. Can someone look into how this works on mobile safari? It would be nice if we could support this, and enable apps to behave like this. This also means we could support typical "cardboard" web apps more cleanly (allowing people to create website that support AR and VR).
Opening issue per this community topic: https://community.argonjs.io/t/user-defined-targets/42
Would be great to be able to use Vuforia's user defined targets capability through Argon.
If I open a new page, I see the bookmark list. If I select a bookmarked page, it goes there, but the bookmark page is not in the "history" so I can't return to it.
Not clear which is correct; desktop Safari lets you go back to the bookmark page.
Not sure if this is true for all android phones, or just some, but the alignment between the content and the target is not as tight on the S6 as on iOS devices.
Right now there is no feedback or progress during loading or refresh. It would be very helpful to have immediate (and ongoing) indication that something is happening
This seems to require an onNewIntent
listener: NativeScript/NativeScript#2747
I've tried extending the com.tns.NativeScriptActivity
as suggested in that post, but so far onNewIntent does not fire.
To be clear, the app currently resumes from a URL when the app in the background, but we are not catching the new intent to get the target url.
Be careful about trying to use an existing plugin, e.g. https://github.com/hypery2k/nativescript-urlhandler
On iOS, that plugin implements UIApplicationDelegate
, but we also implement this for analytics, and there can only be one delegate.
Sometimes when the app is launched in landscape orientation the Vuforia camera feed is stretched.
The edge browser appears to be giving argon orientation info, but the orientation data is bad (on my surface book), so it's pointing "down-ish" but not rotating in any reasonable way.
Would be lovely if it used it, but it doesn't appear to work.
Able to reproduce on an iPhone 6. Run the Vuforia sample and repeatedly reload. About every other load Vuforia will not initialize with the target dataset. It seems that the ar.vuforia.init
message is being missed or ignored.
Right now, if I go to a page (like our samples page) and click on one of the links, I get no feedback until the page loads.
I've received feedback from a few folks that with no "active" progress feedback, it feels like it has crashed or hung
Possible kinds of feedback:
Someone pointed out gear vr supports the best mobile HMD-based experience right now, and I'm pretty sure Vuforia supports it, so shipping an app version (once we have an android version of argon) that is explicitly configured for Gear VR would be a win
Tracking seems to work in portrait, but not in landscape.
In histories, After successfully removing an item, the button is not toggled off, passing the remove button to the next line
When compass calibration is disabled in a device's settings, the app thinks you are looking straight down, and the AR overlay appears as such, regardless of the direction the devices is pointed in. Allowing the app to access this setting, or notifying the user that the setting is disabled, might be a step in the right direction.
When the console is open you currently can't tap through to the page below. This needs to be fixed on Android.
instead of leaving the bad URL in the bar, we get some long file:////var/containers/..... url
This needs to be fixed!
If I type in an https url, it changes it to http. This is really really bad.
Running a test, there are console errors if I connect the debugger to my iPhone and look at the console of the custom reality, but they don't show up in the app's console.
We should show them, and possibly in a different color if we can, so people can tell where they are coming from.
I don't think (unsure) the little page icon triggers a swap between immersive and embedded mode, when the page supports it. Needs to be hooked up.
Several pieces of the system need to respond to orientation changes:
These events are not instantaneous. For example, if we make changes to the System UI visibility on an orientation change event it will be a few hundred milliseconds before the views have the correct new size.
Currently, we handle this issue with a variety of timeouts, e.g. configuring Vuforia 500ms after an orientation event. There are possible race conditions here, we may want to clean up this logic.
Search the project for setTimeout
to find the current fixes.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.