There are two ways to launch external apps from the Portal Hopper.
- The first is by using the Open Link Node in the Logic Editor.
- The second is by calling a vrml file which uses the syntax required to download and launch an app to temporarily replace the Portal Hopper.
Calling an External Tool such as PDF Reader from the Logic Editor #
Windows has an internal mechanism to automatically open an app which is associated with a certain file type (file extension such as “.pdf”). The Open Link Node makes use of this functionality. In order to open a document through their associated app, all you need to do is to enter the link to the file into the text field of the Open Link Node. This can be a link to a file on a server or it could be a link to an HTML page which would implicitly open your standard browser and navigate to that destination.
Calling an External App to Replace the Portal Hopper #
External apps which take over access to the VR headset or the 3D screen basically replace the Portal Hopper. The Hopper will launch the app and the “hide” in the background until the app is terminated. Once the external app closes, the Hopper will take over control again and return to the world/location where the external app was launched from.
It is assumed that this app is capable of taking over the screen and/or VR drivers (OpenXR or SteamVR). Examples of such apps are apps which were built based on Unreal Engine, Godot or Unity.
The Portal Hopper’s external app launch is a three step process,
- Step 1, check, if the external app is already installed, if yes proceed with step 3
- Step 2, download the installer app, launch installer app and wait for it to finish
- Step 3, launch the actual app by retrieving its path as defined the Registry
As you can see, the process requires you to create an installer app which handles the installation procedure as well as register the app in the Registry. This is mandatory. A good example of a free tool which builds an installer is Inno Setup. Use this tool to build a single setup file which contains the entire installation programming as well as all the runtime folders and resources associated with the installation.
Place the installer app on your server. Let’s for example say the server’s name is
myserver.com
and the installer is placed at
https://myserver.com/my_new_app/installer.exe
Then the matching vrml file might look like this:
<vrml version="2.0">
<creatorInfo>
<name>Bob HopperGuru</name>
<legalNotice type="Text">All rights reserved</legalNotice>
<copyright>HopperGuru 2025</copyright>
</creatorInfo>
<protocol name="DOWNLOAD_AND_RUN">
<rootDomain>https://myserver.com/my_new_app</rootDomain>
<downloadUrl>%ROOT%/installer.exe</downloadUrl>
<executeRegistryEntry>HKEY_CLASSES_ROOT\\MyNewApp\\Shell\\Open\\Command</executeRegistryEntry>
<autoStart>true</autoStart>
</protocol>
</vrml>
Set <autoStart> to false if the Portal Hopper should prompt the user to run the app. Otherwise the PH assumes that the install program already presents the option to run the app after installing it automatically (auto start).