박상윤 5월 15일에 포스트됨 공유하기 5월 15일에 포스트됨 안드로이드 웹뷰 사용시 팝업이 생성 되지 않습니다. 안드로이드 웹킷에서 기본적으로 지원하고 있지 않아 안드로이드 스튜디오에서는 오버라이드 해서 지원하는 사용예제 들이 있어서 쉽게 적용이 되는데 델파이로 작업 진행하는데 진행을 못하고 있습니다. 현재 델파이 11.3 버전 사용 중이며 FMX.WebBrowser.Android 수정 해서 작업을 하고 있습니다. WebChromeClient 사용 해야 되서 오버라이드를 위해서 다음과 같이 선언 했으며 type TJWebChromeClientEX = class(TJWebChromeClient) Public dialog :jDialog; newWebView :jWebView; function onCreateWindow(view: JWebView; isDialog: Boolean; isUserGesture: Boolean; resultMsg: JMessage): Boolean; cdecl; procedure onCloseWindow(window: JWebView); cdecl; end; TAndroidWebBrowserService.Create; 부분에 FWebView.getSettings.setJavaScriptCanOpenWindowsAutomatically(True); FWebView.getSettings.setSupportMultipleWindows(TRUE); FWebView.setWebChromeClient(TJWebChromeClientEX.Create) ; 추가하고 procedure TJWebChromeClientEX.onCloseWindow(window: JWebView); begin dialog.dismiss(); inherited; end; function TJWebChromeClientEX.onCreateWindow(view: JWebView; isDialog,isUserGesture: Boolean; resultMsg: JMessage): Boolean; begin newWebview := TjWebView.JavaClass.init(MainActivity); newWebview.getSettings().setJavaScriptEnabled(true); newWebview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); newWebview.getSettings().setSupportMultipleWindows(true); dialog := Tjdialog.JavaClass.init(MainActivity); dialog.setContentView(newWebview); dialog.show(); newWebview.clearView; resultMsg.sendToTarget(); result := TRUE; inherited; end; 함수를 구현했는데 동작 하지 않습니다. 안드로이드 웹뷰 팝업을 어떻게 해야 할까요 ? 자바 코팅 예제들 입니다. https://helloit.tistory.com/303 https://hoyi327.tistory.com/27 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
질문
박상윤
안드로이드 웹뷰 사용시 팝업이 생성 되지 않습니다.
안드로이드 웹킷에서 기본적으로 지원하고 있지 않아 안드로이드 스튜디오에서는
오버라이드 해서 지원하는 사용예제 들이 있어서 쉽게 적용이 되는데
델파이로 작업 진행하는데 진행을 못하고 있습니다.
현재 델파이 11.3 버전 사용 중이며
FMX.WebBrowser.Android 수정 해서 작업을 하고 있습니다.
WebChromeClient 사용 해야 되서 오버라이드를 위해서 다음과 같이 선언 했으며
type
TJWebChromeClientEX = class(TJWebChromeClient)
Public
dialog :jDialog;
newWebView :jWebView;
function onCreateWindow(view: JWebView; isDialog: Boolean; isUserGesture: Boolean; resultMsg: JMessage): Boolean; cdecl;
procedure onCloseWindow(window: JWebView); cdecl;
end;
TAndroidWebBrowserService.Create; 부분에
FWebView.getSettings.setJavaScriptCanOpenWindowsAutomatically(True);
FWebView.getSettings.setSupportMultipleWindows(TRUE);
FWebView.setWebChromeClient(TJWebChromeClientEX.Create) ;
추가하고
procedure TJWebChromeClientEX.onCloseWindow(window: JWebView);
begin
dialog.dismiss();
inherited;
end;
function TJWebChromeClientEX.onCreateWindow(view: JWebView; isDialog,isUserGesture: Boolean; resultMsg: JMessage): Boolean;
begin
newWebview := TjWebView.JavaClass.init(MainActivity);
newWebview.getSettings().setJavaScriptEnabled(true);
newWebview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
newWebview.getSettings().setSupportMultipleWindows(true);
dialog := Tjdialog.JavaClass.init(MainActivity);
dialog.setContentView(newWebview);
dialog.show();
newWebview.clearView;
resultMsg.sendToTarget();
result := TRUE;
inherited;
end;
함수를 구현했는데 동작 하지 않습니다.
안드로이드 웹뷰 팝업을 어떻게 해야 할까요 ?
자바 코팅 예제들 입니다.
https://helloit.tistory.com/303
https://hoyi327.tistory.com/27
이 댓글 링크
다른 사이트에 공유하기
0 answers to this question
Recommended Posts
이 토의에 참여하세요
지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.