2016-09-30 2 views
0

세이버 레드 앱을 개발 중이며 웹킷 뷰를 사용하여 웹 애플리케이션을 소개하려고합니다. WebkitView 하위 클래스가 로컬로 플러그인 된 HTML/JS와 통신 할 수있는 방법은 여러 가지가 있음을 알고 있습니다. 그러나 레드 애플 리케이션과 외부 웹 애플리케이션간에 데이터를 교환하는 가장 좋은 방법은 무엇입니까?세이버 레드 앱의 외부 웹 앱과 통신하는 방법

옵션 내가 살펴본 : 플러그인 - 리소스로 지역 index.html을 만들기 iframe에 웹 응용 프로그램을로드하고 WebkitView < 갈

  1. -> index.html을 < -> iFrame/웹 응용 프로그램. 약간의 해킹으로 보입니다. 빨간색 작업 영역에서 항상 해당 index.html을 허용 할 것인지 확신하지 못합니다. iframe 통신 (해당 사이트가 아닌 경우)
  2. WebkitView # executeJavaScript()를 사용하지만 나는 웹 응용 프로그램이 브라우저 경우처럼 원격 URL을 렌더링 할 수있는 레드 애플 리케이션 당신에서 다시

감사 사이먼

답변

0

확장 점 'com.sabre.edge.platform.optional.webkit.js.handler'를 사용하여 빨간색 응용 프로그램 예제를 표시하지만 WebkitView 하위 클래스를 사용하는 경우 입니다. BrowserView를 서브 클래 싱하는 JS 오브젝트는 이 아니고입니다.

다른 방법으로는 com.sabre.edge.cf.webapp.services.WebViewForwardingService를 사용하여 JS 함수를 호출하기로 결정했습니다. ('com.sabre.edge.cf.webapp.services'를 플러그인 종속성으로 포함하십시오)

0

를 JSON 개체를 보낼 수있는 방법을 볼 수 없습니다. 실제 웹 응용 프로그램을 모두 플러그인과 함께 번들로 제공 할 필요는 없습니다.

또는 클라이언트의 모든 HTML/JS 파일을 플러그인에 묶어 둘 의도입니다.

+0

감사합니다. WebkitView를 사용하여 원격 URL을 렌더링하지만, JSON 객체/문자열을 내 Red App에 전송하는 원격 웹 응용 프로그램의 버튼을 제공하려면 어떻게해야합니까? 통신 채널은 어떻게 작동합니까? – Simon

+0

일반적으로 페이지를 렌더링하는 브라우저 플러그인 확장의 Java Script 인터페이스를 통해 웹 페이지와 Java 클라이언트 코드 간의 통신을 허용하는 Java 클래스 프록시를 빌드합니다. 쉽게 성취되었습니다. – jmacagno

관련 문제