자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey androidapi 사용법 문의
2015.06.09 00:37
본 게시판 사용시 주의 사항
* 이 게시판은 누구나 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
-----------------------------------------------------------------------------------------------
XE8 / 단말기 모델명 : G3 / O/S 버전 : 롤리팝
WebBrowser 를 사용하려는 webrtc 를 지원하지않아 adnroidapi.jni.webkit 으로 작업해보려 하고 있습니다.
DPF 도 해봤지만 잘 안되는 것 같습니다....
검색하여 나온 사용법
procedure TForm1.Button1Click(Sender: TObject);
var
myWebView: JWebView;
begin
CallInUiThread(
procedure
begin
myWebView := TJWebView.JavaClass.init(SharedActivityContext);
myWebView.loadUrl(StringToJString('https://accounts.google.com'));
myWebView.setWebViewClient(TJWebViewClient.Create());
myWebView.setMinimumHeight(400);
myWebView.setMinimumWidth(400);
MyWebView.setX(0);
MyWebView.setY(0);
MyWebView.setTop(0);
end);
를 이용해보고 있는데 동작하지 않습니다.
myWebView := TJWebView.JavaClass.init(SharedActivityContext); 에서 에러가 납니다.
CallInUiThread 를 빼고 해보면 에러가 납니다.
댓글 2
-
Humphery
2015.06.09 01:35
-
Humphery
2015.06.09 23:28
외부 컴포넌트 외의 추가 답변을 요청하셔서 참고할만한 자료 몇가지 드립니다.
myWebView := TJWebView.JavaClass.init(SharedActivityContext); 에서 에러가 납니다. CallInUiThread 를 빼고 해보면 에러가 납니다.
uses 절에 FMX.Helpers.Android 추가하세요.(XE8 기준)
TJWebView를 사용하려면 안드로이드 API 사용하는 방법을 먼저 익혀야 합니다. 다음글을 참고하세요.
http://blog.hjf.pe.kr/102
그리고 JWebView를 직접 컨트롤 하려고 하면, 외부의 검증되지 않은 샘플코드보다 파이어옹키의 소스를 직접 보시고 학습하는 것이 더 좋습니다.
저도 이참에 파이어몽키 소스를 확인해 보니 파이어몽키의 웹브라우저도 JWebView를 상속받아 리스너만 추가해 구현했네요.
[JavaSignature('com/embarcadero/firemonkey/webbrowser/WebBrowser')]
JWebBrowser = interface(JWebView)
['{21876269-EEA5-4130-BE15-F23BEB8ECA69}']
procedure SetWebViewListener(listener: JOnWebViewListener); cdecl;
end;
TJWebBrowser = class(TJavaGenericImport<JWebBrowserClass, JWebBrowser>) end
그리고, JWebView를 생성해서 화면에 표시하는 코드는 다음 파일을 참고해보세요.
FMX.WebBrowser.Android.pas(C:\Program Files (x86)\Embarcadero\Studio\16.0\source\fmx)
procedure TAndroidWebBrowserService.InitUIThread;
begin
FJWebBrowser := TJWebBrowser.JavaClass.init(SharedActivity);
FJWebBrowser.getSettings.setJavaScriptEnabled(True);
FListener := TWebBrowserListener.Create(Self);
FJWebBrowser.SetWebViewListener(FListener);
FJNativeLayout := TJNativeLayout.JavaClass.init(SharedActivity,
MainActivity.getWindow.getDecorView.getWindowToken);
FJNativeLayout.setPosition(100,100);
FJNativeLayout.setSize(300,300);
FJNativeLayout.setControl(FJWebBrowser);
FFocusChangeListener := TFocusChangeListener.Create(Self);
FJNativeLayout.setOnFocusChangeListener(FFocusChangeListener);
FJWebBrowser.getSettings.setBuiltInZoomControls(True);
FJWebBrowser.getSettings.setDisplayZoomControls(False);
end;
저도 더 분석하고 싶지만 시간이 허락하지 않아 위의 내용만 간단히 코멘트 드립니다.나머지 부분은 직접 공부하시면서 하나하나 해결하실 수 있을 것입니다.^^
번호 제목 글쓴이 날짜 조회 수
공지
[프로그래밍 강의] 2021.6~2021.12
관리자 2015.01.22 19713
공지
유용한 관련 사이트
관리자2 2014.03.20 58649
공지
본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다.
관리자 2012.01.10 102192
6
WebBrowser focus 부분 문의드립니다.
[1] 김하나 2014.05.14 3914
»
androidapi 사용법 문의
[2] 김하나 2015.06.09 1093
4
TWebBrowser 관련문의
[1] 아가머하노 2017.09.17 323
3
도쿄에서의 문제 RIO에서 해결된 부분과 아닌부분(앱제작 시)
[4] 지병철 2018.12.14 566
2
ERR_CLEARTEXT_NOT_PERMITTED 에러...
[1] 이재홍 2019.05.27 670
1
Andorid, IOS에서 Media (동영상)갤러리를 호출하는 방법
delphiman 2020.12.01 640
Firemonkey androidapi 사용법 문의
2015.06.09 00:37
* 이 게시판은 누구나 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
-----------------------------------------------------------------------------------------------
XE8 / 단말기 모델명 : G3 / O/S 버전 : 롤리팝
WebBrowser 를 사용하려는 webrtc 를 지원하지않아 adnroidapi.jni.webkit 으로 작업해보려 하고 있습니다.
DPF 도 해봤지만 잘 안되는 것 같습니다....
검색하여 나온 사용법
procedure TForm1.Button1Click(Sender: TObject);
var
myWebView: JWebView;
begin
CallInUiThread(
procedure
begin
myWebView := TJWebView.JavaClass.init(SharedActivityContext);
myWebView.loadUrl(StringToJString('https://accounts.google.com'));
myWebView.setWebViewClient(TJWebViewClient.Create());
myWebView.setMinimumHeight(400);
myWebView.setMinimumWidth(400);
MyWebView.setX(0);
MyWebView.setY(0);
MyWebView.setTop(0);
end);
를 이용해보고 있는데 동작하지 않습니다.
myWebView := TJWebView.JavaClass.init(SharedActivityContext); 에서 에러가 납니다.
CallInUiThread 를 빼고 해보면 에러가 납니다.
댓글 2
-
Humphery
2015.06.09 01:35
-
Humphery
2015.06.09 23:28
외부 컴포넌트 외의 추가 답변을 요청하셔서 참고할만한 자료 몇가지 드립니다.
myWebView := TJWebView.JavaClass.init(SharedActivityContext); 에서 에러가 납니다. CallInUiThread 를 빼고 해보면 에러가 납니다.
uses 절에 FMX.Helpers.Android 추가하세요.(XE8 기준)
TJWebView를 사용하려면 안드로이드 API 사용하는 방법을 먼저 익혀야 합니다. 다음글을 참고하세요.
http://blog.hjf.pe.kr/102
그리고 JWebView를 직접 컨트롤 하려고 하면, 외부의 검증되지 않은 샘플코드보다 파이어옹키의 소스를 직접 보시고 학습하는 것이 더 좋습니다.
저도 이참에 파이어몽키 소스를 확인해 보니 파이어몽키의 웹브라우저도 JWebView를 상속받아 리스너만 추가해 구현했네요.
[JavaSignature('com/embarcadero/firemonkey/webbrowser/WebBrowser')]
JWebBrowser = interface(JWebView)
['{21876269-EEA5-4130-BE15-F23BEB8ECA69}']
procedure SetWebViewListener(listener: JOnWebViewListener); cdecl;
end;
TJWebBrowser = class(TJavaGenericImport<JWebBrowserClass, JWebBrowser>) end
그리고, JWebView를 생성해서 화면에 표시하는 코드는 다음 파일을 참고해보세요.
FMX.WebBrowser.Android.pas(C:\Program Files (x86)\Embarcadero\Studio\16.0\source\fmx)
procedure TAndroidWebBrowserService.InitUIThread;
begin
FJWebBrowser := TJWebBrowser.JavaClass.init(SharedActivity);
FJWebBrowser.getSettings.setJavaScriptEnabled(True);
FListener := TWebBrowserListener.Create(Self);
FJWebBrowser.SetWebViewListener(FListener);
FJNativeLayout := TJNativeLayout.JavaClass.init(SharedActivity,
MainActivity.getWindow.getDecorView.getWindowToken);
FJNativeLayout.setPosition(100,100);
FJNativeLayout.setSize(300,300);
FJNativeLayout.setControl(FJWebBrowser);
FFocusChangeListener := TFocusChangeListener.Create(Self);
FJNativeLayout.setOnFocusChangeListener(FFocusChangeListener);
FJWebBrowser.getSettings.setBuiltInZoomControls(True);
FJWebBrowser.getSettings.setDisplayZoomControls(False);
end;
저도 더 분석하고 싶지만 시간이 허락하지 않아 위의 내용만 간단히 코멘트 드립니다.나머지 부분은 직접 공부하시면서 하나하나 해결하실 수 있을 것입니다.^^
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [프로그래밍 강의] 2021.6~2021.12 | 관리자 | 2015.01.22 | 19713 |
공지 | 유용한 관련 사이트 | 관리자2 | 2014.03.20 | 58649 |
공지 | 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. | 관리자 | 2012.01.10 | 102192 |
6 | WebBrowser focus 부분 문의드립니다. [1] | 김하나 | 2014.05.14 | 3914 |
» | androidapi 사용법 문의 [2] | 김하나 | 2015.06.09 | 1093 |
4 | TWebBrowser 관련문의 [1] | 아가머하노 | 2017.09.17 | 323 |
3 | 도쿄에서의 문제 RIO에서 해결된 부분과 아닌부분(앱제작 시) [4] | 지병철 | 2018.12.14 | 566 |
2 | ERR_CLEARTEXT_NOT_PERMITTED 에러... [1] | 이재홍 | 2019.05.27 | 670 |
1 | Andorid, IOS에서 Media (동영상)갤러리를 호출하는 방법 | delphiman | 2020.12.01 | 640 |
다음 내용을 검토해 보세요. 외부 컴포넌트가 있네요.
http://www.fmxexpress.com/build-voip-and-video-chat-apps-with-webrtc-in-delphi-xe8-firemonkey-on-android/