🔗 URL 파라미터 기능
OpenSilver 페이지에 URL 파라미터를 전달하여 원하는 화면으로 바로 진입할 수 있습니다.
파라미터 |
설명 |
사용 예 |
site={url} |
초기 접속할 사이트를 설정합니다. |
?site=demo3.autobase.biz |
module={moduleName} |
초기 진입할 모듈을 설정합니다. |
&module=AHU-1.modx |
username={userName} |
초기 사용자 이름을 설정합니다. |
&username=public |
autologin |
접속 시 자동으로 로그인을 시도합니다. |
&autologin |
hidetoolbar |
사이트 접속 시 툴바를 자동으로 숨깁니다. |
&hidetoolbar |
📝 사용 예제
💨 공조 제어 시스템 AHU-1 모듈 바로 접속
https://views.autobase.biz/?site=demo3.autobase.biz&username=public&autologin&module=AHU-1.modx&hidetoolbar
📦 물류 자동화 시스템 바로 접속
https://views.autobase.biz/?site=demo1.autobase.biz&autologin&module=3D\StartUp.modx&hidetoolbar
💡 활용 팁
iframe 임베드: 위 기능을 이용하여 다른 웹페이지의 iframe에 OpenSilver 페이지를 로드하여 원하는 화면으로 바로 진입할 수 있습니다.
북마크 생성: 자주 사용하는 모듈의 URL을 북마크로 저장하여 빠른 접속이 가능합니다.
대시보드 구성: 여러 iframe을 사용하여 통합 모니터링 대시보드를 구성할 수 있습니다.
🔗 PostMessage 통신 기능
OpenSilver iframe과 부모 창 간의 양방향 통신을 통해 동적 모듈 로딩과 상태 모니터링이 가능합니다.
메시지 타입 |
설명 |
사용법 |
ready-check |
OpenSilver 준비 상태 확인 요청 |
postMessage({type: 'ready-check'}, '*') |
opensilver-ready |
OpenSilver 준비 완료 응답 |
자동으로 전송됨 (응답 리스너 필요) |
loadmodule-request |
외부에서 모듈 로드 요청 |
postMessage({type: 'loadmodule-request', moduleName: 'AHU-1.modx'}, '*') |
module-loaded |
모듈 로드 완료 알림 |
모듈 로드 성공 시 자동 전송 |
📝 JavaScript 사용 예제
🔍 OpenSilver 준비 상태 확인
// 준비 상태 확인 요청
iframe.contentWindow.postMessage({
type: 'ready-check'
}, '*');
// 응답 리스너
window.addEventListener('message', function(event) {
if (event.data.type === 'opensilver-ready') {
console.log('OpenSilver가 준비되었습니다.');
}
});
🚀 외부에서 모듈 동적 로드
// 직접 함수 호출 방식
window.loadModule('AHU-1.modx')
.then(result => console.log('모듈 로드 성공:', result))
.catch(error => console.error('모듈 로드 실패:', error));
// PostMessage를 통한 모듈 로드
iframe.contentWindow.postMessage({
type: 'loadmodule-request',
messageId: 'unique-id-' + Date.now(),
moduleName: 'AHU-1.modx'
}, '*');
🎯 활용 시나리오
임베디드 애플리케이션: 다른 웹 페이지에 OpenSilver를 iframe으로 삽입하여 통합 관리
모듈식 아키텍처: 필요에 따라 동적으로 모듈을 로드하는 유연한 시스템 구성
상태 모니터링: 부모 애플리케이션에서 OpenSilver 로딩 상태를 실시간으로 확인
자동화 시스템: 외부 조건에 따라 자동으로 적절한 모듈로 전환하는 스마트 대시보드