Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dev:developer:3dmapping_sdk:viewer_state [2018/08/07 12:40]
pieter.bonne@orbitgt.com
— (current)
Line 1: Line 1:
-====== Track Viewer State ====== 
- 
-Closing your host application usually means that the viewer component is destroyed and loses all state.  The SDK offers a mechanism to a) be notified when you should save viewer state and b) restore the viewer using that state.  These can be used to persist viewer state across host application sessions. 
- 
-This "state" object is made available as a string. 
- 
-===== Saving state ===== 
- 
-To listen for state changes, we listen to the ''onAppStateChanged'' signal of the viewer. Save state whenever it changes. 
- 
-<code javascript> 
-// Listen to the state-changed signal 
-viewer.onAppStateChanged.add(handleAppStateChanged); 
-</code> 
- 
-===== Loading state on startup ===== 
- 
-When creating the viewer, you have the ability to pass startup options.\\  
-The 'application state' startup option can be used to provide state to start from. 
- 
-Startup options can be provided only once.  They can be passed to the constructor function of the Viewer class.  
- 
-===== Example ===== 
- 
-Below is a Javascript-specific example using ''window.localStorage'' for storing state.\\  
-Try logging in to the viewer with "Remember me" checked, and refresh the page. 
- 
-<code javascript> 
-var viewer; 
- 
-/** 
- * Called when something changes to the viewer state.  
- */ 
-function handleAppStateChanged(state) { 
-    // Save state somewhere... 
-    window.localStorage.setItem("m3dviewer_state",state); 
-} 
- 
-/** 
- * Called when the viewer component is ready for interaction. 
- */ 
-function handleReady() { 
-    // Listen to the state-changed signal 
-    viewer.onAppStateChanged.add(handleAppStateChanged); 
-} 
- 
-/** 
- * Called when the page is full loaded. 
- */ 
-function handleDOMReady() { 
-    // Create viewer startup options 
-    var options = new orbitgt.mapping3d.sdk.viewer.AMap(); 
-    options.set(orbitgt.mapping3d.sdk.viewer.Constants.STARTUP_APP_STATE,window.localStorage.getItem("m3dviewer_state")); 
-    // Create viewer 
-    var appElement = document.getElementById("m3dviewer"); 
-    viewer = new orbitgt.mapping3d.sdk.viewer.SDKViewer("example application",appElement,options); 
-    viewer.setSize(600,400); 
-    viewer.isReady.then(handleReady); 
-} 
- 
-// Wait for page to load 
-document.addEventListener("DOMContentLoaded", handleDOMReady); 
-</code> 
- 
-<html> 
-<iframe scrolling="no" src="https://sdk.3dmapping.cloud/18.1.3/javascript_examples/example02.html" allowfullscreen="" width="600px" height="400px" frameborder="0"> 
-</iframe> 
-</html> 
- 
  
 
Last modified:: 2018/08/07 12:40