Ignition Perspective app for an android device

I am first time using using ignition perspective app for the android device. I am using the vision client launcher for the windows. I do not have any issue with vision client launcher for the windows. But When I am opening the my project on the ignition perspective app, I am getting message “ View not found. No view configured for this page”. I need help to resolve this issue.

Perspective Mobile App is for Perspective projects only.

1 Like

Perspective and Vision are completely separate modules and environments which have wildly different architectures; Vision uses Java Swing and Perspective uses React, HTML, and CSS. You cannot move vision and perspective project resources between each other. You need to develop vision and perspective projects independently of one another

2 Likes

Thank you for the reply.

Ohh. I thought that I can launch my same project from an android device also. What is the procedure to develop the project for the perspective application? Is there any other way so I can run my project on android ?

As referenced, they are completely different technologies. I'd watch some videos and get some context on what you are looking for.

The only way to get things going on Android is to develop the appropriate views etc in perspective.

2 Likes

Aside from downgrading to v7.9 :face_with_hand_over_mouth: But the old Vision mobile module had a lot of caveats.

Note that designing in Perspective is a bit of a steep learning curve at the start when coming from Vision or most other SCADA platforms. CSS knowledge will become essential, as well as knowledge of the different container types. I use Flex (~80%) and Coordinate (~15%) containers predominently, and then Breakpoint containers for mobile responsive projects. I never use column containers, and use some the other container types as needed embedded into Views.

Edit: I decided to actually check in a project, and I was pretty darn close with those numbers!!

(I think those 2 column views must have been from an Exchange resource)

image

(If anyone wants to check theirs gwbks, this is the code I used - AI alert)

Python3 Script
#!/usr/bin/env python3
"""
Ignition Perspective View Extractor
Scans a .gwbk file for all Perspective views and outputs a TSV with:
    Project Name | View Path | View Type
"""

import zipfile
import json
import sys
from pathlib import PurePath, Path

def extract_perspective_views(gwbk_path: str, output_tsv: str = None):
    results = []

    with zipfile.ZipFile(gwbk_path, 'r') as zf:
        for file_info in zf.infolist():
            if file_info.is_dir():
                continue

            zip_path = PurePath(file_info.filename.replace('\\', '/'))

            # We are only interested in view.json files inside Perspective views
            if zip_path.name != "view.json":
                continue

            parts = zip_path.parts

            try:
                # Find index of 'com.inductiveautomation.perspective'
                perspective_idx = parts.index("com.inductiveautomation.perspective")
                # Next must be 'views'
                if perspective_idx + 1 >= len(parts) or parts[perspective_idx + 1] != "views":
                    continue

                # Find the project folder (it's under projects/<project_name>/...)
                projects_idx = parts.index("projects")
                if projects_idx >= len(parts) - 1:
                    continue
                project_name = parts[projects_idx + 1]

                # Build the view path from after 'views' to the folder containing view.json
                view_path_parts = parts[perspective_idx + 2 : -1]  # exclude 'views' and 'view.json'
                view_path = "/".join(view_path_parts)

                # Read the JSON content
                with zf.open(file_info) as f:
                    data = json.load(f)

                # Extract view type from root.type
                view_type = data.get("root", {}).get("type", "UNKNOWN")

                results.append({
                    "project": project_name,
                    "view_path": view_path,
                    "view_type": view_type
                })

            except ValueError:
                # 'com.inductiveautomation.perspective' or 'projects' not in path
                continue
            except (json.JSONDecodeError, KeyError):
                # Corrupted or unexpected view.json structure
                results.append({
                    "project": project_name if 'project_name' in locals() else "ERROR",
                    "view_path": view_path if 'view_path' in locals() else str(zip_path),
                    "view_type": "ERROR_PARSING_JSON"
                })

    # Sort results for nicer output
    results.sort(key=lambda x: (x["project"], x["view_path"]))

    # Output
    header = "Project Name\tView Path\tView Type"
    lines = [header]
    for r in results:
        lines.append(f"{r['project']}\t{r['view_path']}\t{r['view_type']}")

    tsv_output = "\n".join(lines)

    if output_tsv:
        Path(output_tsv).write_text(tsv_output + "\n", encoding="utf-8")
        print(f"Results written to {output_tsv}")
    else:
        print(tsv_output)

    print(f"\nFound {len(results)} Perspective views.")

if __name__ == "__main__":
	gwbk = r"C:\Path\To\GWBK\backup-20251124-1840.gwbk"
	output = r"C:\temp\Output.tsv"
	extract_perspective_views(gwbk, output)
2 Likes

can we opened the vision project through URL on the android device?

No.

Opening vision on mobile was removed in v8, replaced by Perspective.