객체 내장 객체

ObjectWebView

브라우저 창 객체

WebView는 브라우저에 내장된 윈도우 구성요소로, 현재는 Windows와 macOS(10.10+)만 지원하며, Windows에서는 IE/Edge 커널을, macOS에서는 WKWebView를 사용합니다.

WebView와 fibjs의 JavaScript 프로그램은 동일한 엔진에 있지 않기 때문에 호스트 프로그램과 통신해야 하는 경우 메시지를 통해 수행해야 합니다.

WebView에서 통신에 사용되는 객체는 외부이며, 외부는 postMessage 메소드 1개와 onmessage, onclose 2개의 이벤트를 지원합니다.

간단한 통신 예제 코드는 다음과 같습니다.

1 2 3 4 5 6 7 8 9
// index.js var gui = require('gui'); var webview = gui.open('fs://index.html'); webview.onmessage = msg => console.log(msg); webview.onload = evt => webview.postMessage("hello from fibjs"); webview.wait();

index.html의 내용은 다음과 같습니다.

1 2 3 4 5 6 7 8
<script> external.onclose = function() { } external.onmessage = function(msg){ external.postMessage("send back: " + msg); }; </script>

사용자 창이 닫히기 전에 external.onclose 이벤트가 트리거되고 external.onclose는 창을 닫을지 여부를 결정할 수 있습니다. external.onclose가 false를 반환하면 작업이 취소되고, 그렇지 않으면 창이 닫힙니다.

다음 예에서는 사용자가 닫기를 클릭한 후 창을 닫기 전에 5초를 기다립니다.

1 2 3 4 5 6 7 8 9 10 11 12
<script lang="JavaScript"> var bClose = false; external.onclose = function () { if (!bClose) { setTimeout(function () { bClose = true; window.close(); }, 5000); return false; } } </script>

위 코드에서는 window.close 자체도 onclose 이벤트를 트리거하므로 이 이벤트를 처리해야 하는지 여부를 식별하기 위해 스위치 변수를 추가해야 합니다.

상속관계

정적 속성

defaultMaxListeners

정수, 기본 전역 최대 리스너 수

1
static Integer WebView.defaultMaxListeners;

구성원 속성

onopen

함수, 쿼리 및 바인딩 로드 성공 이벤트. on("open", func);

1
Function WebView.onopen;

onload

함수, 쿼리 및 바인드 로딩 성공 이벤트. on("load", func);

1
Function WebView.onload;

onaddress

함수, 쿼리 및 바인드 페이지 주소 변경 이벤트. on("address", func);

1
Function WebView.onaddress;

ontitle

함수, 쿼리 및 바인드 페이지 제목 변경 이벤트. on("title", func);

1
Function WebView.ontitle;

onmove

on("move", func)에 해당하는 함수, 쿼리 및 바인드 창 이동 이벤트;

1
Function WebView.onmove;

다음 예제에서는 창이 이동할 때 창의 왼쪽 위 모서리 좌표를 출력합니다.

1 2 3 4
var gui = require('gui'); var webview = gui.open('fs://index.html'); webview.onmove = evt => console.log(evt.left, evt.top);

onresize

함수, 쿼리 및 바인드 창 크기 변경 이벤트. on("size", func);

1
Function WebView.onresize;

다음 예에서는 크기가 조정될 때 창의 크기를 출력합니다.

1 2 3 4
var gui = require('gui'); var webview = gui.open('fs://index.html'); webview.onresize = evt => console.log(evt.width, evt.height);

onclosed

창 닫기 이벤트를 함수, 쿼리 및 바인딩합니다. 이 시간은 WebView가 닫힌 후에 트리거되며 이는 on("closed", func);

1
Function WebView.onclosed;

onmessage

함수, 쿼리 및 바인딩은 webview에서 on("message", func);에 해당하는 postMessage 메시지 이벤트를 허용합니다.

1
Function WebView.onmessage;

ondownload

함수, 쿼리 및 바인딩은 on("download", func)에 해당하는 webview의 다운로드 트랜잭션 상태 변경 이벤트를 허용합니다.

1
Function WebView.ondownload;

멤버 함수

loadUrl

지정된 하중url그 페이지

1
WebView.loadUrl(String url) async;

호출 매개변수:

  • url: 문자열, 지정됨url

getUrl

현재 페이지 쿼리url

1
String WebView.getUrl() async;

결과 반환:

  • String, 현재 페이지를 반환합니다.url

setHtml

웹뷰의 페이지 HTML 설정

1
WebView.setHtml(String html) async;

호출 매개변수:

  • html: 문자열, html 설정

reload

현재 페이지 새로 고침

1
WebView.reload() async;

goBack

전 페이지로 돌아 가기

1
WebView.goBack() async;

goForward

다음 페이지로 이동

1
WebView.goForward() async;

print

현재 창 문서 인쇄

1
WebView.print(Integer mode = 1) async;

호출 매개변수:

  • mode: 정수, 인쇄 매개변수, 0: 빠른 인쇄, 1: 표준 인쇄, 2: 인쇄 미리보기. 기본값은 1입니다.

executeJavaScript

현재 창에서 JavaScript 코드 조각 실행

1
WebView.executeJavaScript(String code) async;

호출 매개변수:

  • code: 문자열, 실행할 JavaScript 코드를 지정합니다.

close

현재 창 닫기

1
WebView.close() async;

postMessage

웹뷰에 메시지 보내기

1
WebView.postMessage(String msg) async;

호출 매개변수:

  • msg: 문자열, 보낼 메시지

    postMessage는 창이 로드된 후에 메시지를 보내야 하며 이전에 보낸 메시지는 손실됩니다. 따라서 onload 이벤트가 발생한 후에 이 메서드를 호출하는 것이 좋습니다.


on

이벤트 핸들러를 객체에 바인딩

1 2
Object WebView.on(String ev, Function func);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.
  • func: 함수, 이벤트 처리 함수를 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

이벤트 핸들러를 객체에 바인딩

1
Object WebView.on(Object map);

호출 매개변수:

  • map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

addListener

이벤트 핸들러를 객체에 바인딩

1 2
Object WebView.addListener(String ev, Function func);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.
  • func: 함수, 이벤트 처리 함수를 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

이벤트 핸들러를 객체에 바인딩

1
Object WebView.addListener(Object map);

호출 매개변수:

  • map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

prependListener

이벤트 핸들러를 객체의 원점에 바인딩

1 2
Object WebView.prependListener(String ev, Function func);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.
  • func: 함수, 이벤트 처리 함수를 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

이벤트 핸들러를 객체의 원점에 바인딩

1
Object WebView.prependListener(Object map);

호출 매개변수:

  • map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

once

일회성 이벤트 핸들러를 객체에 바인딩합니다. 일회성 핸들러는 한 번만 트리거됩니다.

1 2
Object WebView.once(String ev, Function func);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.
  • func: 함수, 이벤트 처리 함수를 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

일회성 이벤트 핸들러를 객체에 바인딩합니다. 일회성 핸들러는 한 번만 트리거됩니다.

1
Object WebView.once(Object map);

호출 매개변수:

  • map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

prependOnceListener

이벤트 핸들러를 객체의 원점에 바인딩

1 2
Object WebView.prependOnceListener(String ev, Function func);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.
  • func: 함수, 이벤트 처리 함수를 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

이벤트 핸들러를 객체의 원점에 바인딩

1
Object WebView.prependOnceListener(Object map);

호출 매개변수:

  • map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

off

객체 처리 대기열에서 기능 할당 취소

1 2
Object WebView.off(String ev, Function func);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.
  • func: 함수, 이벤트 처리 함수를 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

객체 처리 대기열의 모든 기능 취소

1
Object WebView.off(String ev);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

객체 처리 대기열에서 기능 할당 취소

1
Object WebView.off(Object map);

호출 매개변수:

  • map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름을 이벤트 이름으로 사용하고, 해당 속성의 값을 이벤트 처리 함수로 사용합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

removeListener

객체 처리 대기열에서 기능 할당 취소

1 2
Object WebView.removeListener(String ev, Function func);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.
  • func: 함수, 이벤트 처리 함수를 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

객체 처리 대기열의 모든 기능 취소

1
Object WebView.removeListener(String ev);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

객체 처리 대기열에서 기능 할당 취소

1
Object WebView.removeListener(Object map);

호출 매개변수:

  • map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름을 이벤트 이름으로 사용하고, 해당 속성의 값을 이벤트 처리 함수로 사용합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

removeAllListeners

객체의 처리 대기열에서 모든 이벤트에 대한 모든 리스너를 취소합니다. 이벤트가 지정된 경우 지정된 이벤트에 대한 모든 리스너를 제거합니다.

1
Object WebView.removeAllListeners(String ev);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

객체의 처리 대기열에서 모든 이벤트에 대한 모든 리스너를 취소합니다. 이벤트가 지정된 경우 지정된 이벤트에 대한 모든 리스너를 제거합니다.

1
Object WebView.removeAllListeners(Array evs = []);

호출 매개변수:

  • evs: 배열, 이벤트 이름 지정

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

setMaxListeners

호환성만을 위한 리스너 수의 기본 제한

1
WebView.setMaxListeners(Integer n);

호출 매개변수:

  • n: 정수, 이벤트 수를 지정합니다.

getMaxListeners

호환성만을 위해 기본 제한 수의 리스너를 가져옵니다.

1
Integer WebView.getMaxListeners();

결과 반환:

  • Integer, 기본 제한 수량을 반환합니다.

listeners

객체의 지정된 이벤트에 대한 리스너 배열을 쿼리합니다.

1
Array WebView.listeners(String ev);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.

결과 반환:

  • Array, 지정된 이벤트에 대한 리스너 배열을 반환합니다.

listenerCount

객체의 지정된 이벤트에 대한 리스너 수를 쿼리합니다.

1
Integer WebView.listenerCount(String ev);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.

결과 반환:

  • Integer, 지정된 이벤트에 대한 리스너 수를 반환합니다.

객체의 지정된 이벤트에 대한 리스너 수를 쿼리합니다.

1 2
Integer WebView.listenerCount(Value o, String ev);

호출 매개변수:

  • o: 값, 쿼리 개체를 지정합니다.
  • ev: 문자열, 이벤트 이름을 지정합니다.

결과 반환:

  • Integer, 지정된 이벤트에 대한 리스너 수를 반환합니다.

eventNames

쿼리 리스너 이벤트 이름

1
Array WebView.eventNames();

결과 반환:

  • Array, 이벤트 이름의 배열을 반환합니다.

emit

이벤트를 적극적으로 트리거

1 2
Boolean WebView.emit(String ev, ...args);

호출 매개변수:

  • ev: 문자열, 이벤트 이름
  • args: ..., 이벤트 매개변수가 이벤트 처리 함수에 전달됩니다.

결과 반환:

  • Boolean, 이벤트 트리거 상태를 반환하고, 응답 이벤트가 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

toString

객체의 문자열 표현을 반환하며 일반적으로 "[Native Object]"를 반환하며 객체 자체의 특성에 따라 다시 구현될 수 있습니다.

1
String WebView.toString();

결과 반환:

  • String, 객체의 문자열 표현을 반환합니다.

toJSON

객체의 JSON 형식 표현을 반환하며 일반적으로 객체에 의해 정의된 읽을 수 있는 속성 컬렉션을 반환합니다.

1
Value WebView.toJSON(String key = "");

호출 매개변수:

  • key: 문자열, 사용되지 않음

결과 반환:

  • Value, 직렬화 가능한 JSON을 포함하는 값을 반환합니다.