Hey Jimmy,
That sounds really interesting!
Each page in an Adapt course has a unique ID, and the URL to get to each page uses the format <course_URL>#/id/<page_ID>.
For example: example.com/course/#/id/abc123 takes you to the page with the id abc123 in the course found at http://example.com/course/
In the authoring tool, the ID is a generated 96 bit hex value like this: 56434f890b77c19c4e6545f4. If you were using the framework directly, I think you'd have a little more control over what to assign as the ID. (I'm more familiar with the Authoring Tool, so I'm not 100% sure about that).
So, unless I'm overlooking something, I'm thinking you should be able to assign a corresponding page ID to each station. When the user enters/unlocks that area, you launch a webview to the URL of the page. The ID does persist; it doesn't get wiped out every time you download your course or anything, so unless you delete and recreate pages (which would generate a new ID), it's just a one-time process to map IDs to stations. If you got really creative, you could probably figure out a way to assign a station to your page metadata (create a custom Adapt extension maybe?) so that you can pick those up without hardcoding it in your app.
Leveraging the SCORM API definitely seems like the easiest approach to me. Could be some complications that may or may not affect you since your workflow is a little different from an LMS. For example, I think by default, the spoor plug-in reports back to the LMS when the browser window is closed. Not sure how that impacts a webview/iframe. But worth looking into, I think.
Anyway, this sounds really cool. Keep us updated on your progress!
Cheers,
Ryan