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/06 20:57]
pieter.bonne@orbitgt.com
— (current)
Line 1: Line 1:
-====== Restore Viewer State ====== 
- 
-By default closing your host application means that the viewer component is destroyed and loses all state.  The SDK offers a mechanism to a) be notified when its state changes and b) restore the viewer using that state.  These can be used to persist viewer state across host application sessions. 
- 
-This allows you to make the viewer to remember state :  
-  * Remember last login 
-  * etc... 
- 
-This "state" object is made available as a string. 
- 
-===== Saving state on changes ===== 
- 
-To listen for state changes, we listen to the ''onAppStateChanged'' signal of the viewer. 
- 
-<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 ''SDKViewer'' class (which implements the ''Viewer3DM'' interface described in the reference documentation). 
- 
-===== Example ===== 
- 
-Below is a self-containing javascript 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/06 20:57