2012-03-22 3 views
2

다른 브라우저에 따라 다른보기를 지원하는 웹 응용 프로그램을 구현하고 있습니다. 예를 들어 모바일 브라우저에서는 UI 요소가 적은 사용자에게 작은보기를 표시합니다. 그러나 우리는 같은 발표자를 사용하고 싶습니다. 이 GWT 플랫폼에 결합 지연된 같은 몇 가지 방법을 사용할 수 있다면 궁금하네요GWT 플랫폼을 통해 여러 개의보기를 구현 하시겠습니까?

if (browser == "iphone") { 
    bindPresenter(HomePresenter.class, HomePresenter.MyView.class, HomeView.class, HomePresenter.MyProxy.class); 
} else if (browser == "ipad") { 
    bindPresenter(HomePresenter.class, HomePresenter.MyView.class, IPadHomeView.class, HomePresenter.MyProxy.class); 
} else { 
    bindPresenter(HomePresenter.class, HomePresenter.MyView.class, IPhoneHomeView.class, HomePresenter.MyProxy.class); 
} 

: ClientModule 논리를 감지 추가 브라우저 유형, 예컨대 -

나는 손에 해결책을 가지고 있습니다. (하지만 xxx.gwt.xml에 지연된 바인딩 코드를 추가하는 대신 GWT-plarform의 구조를 따르고 싶습니다.)

그래서 내 질문은 : 위에서 언급 한 기능을 구현하기위한 다른 방법이

1)이 있습니까?
2) 가장 좋은 방법은 무엇이며 그 이유는 무엇입니까?

미리 감사드립니다.

안부,

답변

1

GWT W
Jiakuan는 사용자 정의 사용자 에이전트 유형을 설정하는 것을 허용하지 않습니다. 게코, gecko1_7, 사파리, IE6, IE7, IE8 및 오페라으로 제한되어 있습니다.

그렇다면 access the user agent directly을 입력하고 Window.Navigator.getUserAgent()으로 또는 논리 제공자를 통해 로직을 설정하십시오.

MVP 용 how to do mobile browser detection in GWT과 비슷한 질문입니다.

+0

답장을 보내 주셔서 감사합니다. 제공하신 링크를 통해 더 나은 해결책을 찾을 수 있습니다. –

2

gwt 샘플 폴더에 원하는 것을 수행하는 예제가 있습니다. 내 프로젝트에서 샘플 코드 버전을 사용합니다. 클라이언트 기능을 처리하기 위해 Gin을 사용하는 경우는 예외입니다. 샘플은 mobilewebapp입니다. .gwt.xml의 formfactor 메소드를 사용하여 현재 사용중인 시스템을 결정합니다.이 경우 데스크톱, 모바일 및 태블릿으로 구분합니다. 그런 다음 나중에 gwt.xml에서 폼 팩터를 기반으로 클라이언트 팩토리를 교환합니다. 대신 진 모델을 사용하지 않습니다. mobilwebapp

+0

예, 정말 좋은 예제를 발견했습니다. 나는 그 방법을 사용하기로 계획했다. GWTP & GIN을 사용하고 있습니다. 귀하의 답변에 감사드립니다. –

+0

GIN에서 어떻게 사용 했습니까? 고마워요. –

+0

데스크톱, 모바일 및 태블릿을위한 다른 진 모듈이 있습니다. 클라이언트 팩토리를 교체하는 대신 진 모듈을 교환합니다. 진 모듈에는 클라이언트 팩토리에있는 모든 것이 들어 있습니다. – Deanna

0

의 소스에 대한 링크는 다음과 같습니다. gwtp google 그룹과 그 좋은 출처를 확인하십시오. 누군가가 거기에있는 술 문제에 관한 자신의 노력에 대한 pdf를 게시했습니다. 어쨌든 올바르게 호출 한 경우 발표자와 뷰가있는 각 클라이언트에 대해 여러 개의 진 모듈을 보유하고 있으며로드시 사용자 정의 js 코드를 실행하고 올바른 모듈을 ginClinet 클래스에 설치합니다.

관련 문제