Perspective App Navigation Different than Browser

In my main project, I am redirecting to another project via the URL. This works great when running in a web browser.

When I run this from the Ignition Perspective app, it opens a web browser and attempts to navigate to that URL.

Any way to keep the session in the app?

If you perform page navigation instead, and supply the configured page URL.

If it’s in a different project, will that still work?

I have tried doing that and it gives me
View Not Found
No view configured for this page

Because it’s in a different project.
If in a web browser, it works fine it just navigates you to a different page within the web browser but as soon as you use system.perspective.navigate(url=differentProjectURL) it takes you out of the app and into your default web browser.

How do achieve the same behavior running a project in a web browser and in the app?

I don’t believe the app supports cross-project navigation. I don’t remember the exact reasoning for the limitation. I’ve reached out to our mobile developer in the hopes that he can chime in on explaining why, or perhaps provide a workaround.

I made it work. The first project was found and added through the app as a launchable project.

Then the button I had on the screen to navigate to the other project had url=“localhost:8088/data/pers…”
This works when running from my laptop because the private IP of Ignition and localhost is the same on the laptop.

Once I switched the button navigation from localhost to the private IP, it worked properly.

Instead of using a hard-coded IP, I would suggest using the session props to obtain the gateway address. Then if your Gateway ever moves you won’t have to repair the incorrect IP.
something like this:

system.perspective.navigate(url=self.session.props.host + "/data/perspective/client/MyProject/PathToPage")

If we access the project via a domain name instead of IP, will it show the IP address in self.session.props.host or will it be the domain name?

It looks like you need to configure what is shown if you’re using 8.1.10. If you’re using an earlier version then it will only be the IP: Session Properties - Ignition User Manual 8.1 - Ignition Documentation

I'm also experiencing the same issue wherein I'm trying to navigate to a different project by using system.perspective.navigate. It also works when I'm testing it in my browser, but when I try to test it in a perspective app, it would also prompt the web browser. I tried using the session.props.host but it would not also work. What is also weird, when I'm testing it on a different tablet, it would not prompt the web browser even if I'm still using the same code to navigate. Are there any work arounds for this?

If you're on Android, then using a URL in the deep link format should work, for example system.perspective.navigate(url='perspective://<host>:<port>/<project>'). I don't think there's a workaround currently for iOS but we do have an open ticket to improve upon this.

I tried this approach and the result was it works sometimes but it also sometimes wouldn't work. It would hang up during the loading page of ignition and I also noticed that it opened multiple Ignition Perspective sessions in the application manager of the android tablet every time I would navigate using the deep link format.

Below is the part where the application would hang up.
Screenshot 2024-01-22 081155

However, I tried to revert back to not using the deep link format and I imported some global props (which I'm not sure what specific change it did) but it miraculously fixed every issue that it would not prompt the browser or it would not hang up when I navigate to a different project inside the perspective app.