Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr
  • 0

안드로이드 웹뷰 팝업 window.open 문제


박상윤

질문

안드로이드 웹뷰 사용시 팝업이 생성 되지 않습니다. 

안드로이드 웹킷에서  기본적으로 지원하고 있지 않아   안드로이드 스튜디오에서는 

오버라이드 해서  지원하는  사용예제 들이 있어서  쉽게 적용이 되는데 

델파이로  작업 진행하는데  진행을  못하고 있습니다. 

 

현재 델파이 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

이 질문에 답변한 사람이 아직 없습니다

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 질문에 답변하기...

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.