0

Eclipse RAP を使用して RAP アプリケーションを作成しています。クライアントは、任意のブラウザー、iPad、または Android タブレット (Tabris を使用) である可能性があります。どのクライアントがリクエストを送信したかを知る機会はありますか?

私の質問の背景は次のとおりです。Tabris は今まで SashForms をサポートしていません。このため、Web クライアントにサービスを提供している場合に SashFrom をレンダリングしたいのですが、Android クライアントにサービスを提供している場合は SashForm を作成したくありません。私はこのようなことができます:

public static boolean isAndroid() {
    return getUserAgent().contains(Constants.ID_ANDROID);
}

private static String getUserAgent() {
    return RWT.getRequest().getHeader(Constants.USER_AGENT);
}

public static boolean isIos() {
    return getUserAgent().contains(Constants.ID_IOS);
}

public static boolean isWeb() {
    return !isAndroid() && !isIos();    
}

しかし、このアプローチは避けたいと思います。これは内部 API を使用し、スタンドアロン RAP を使用しているため、servlet-api.jar を WEB-INF/lib フォルダーに追加して実行する必要があるためです。良い。

あなたの助けと情報を前もってありがとう、Tobias。

4

2 に答える 2

2

これが役立つと思います:https ://github.com/eclipsesource/tabris/blob/master/com.eclipsesource.tabris/src/com/eclipsesource/tabris/ClientDevice.java

于 2012-08-03T06:01:10.553 に答える
0

ClientDevice を使用する代わりの方法の 1 つは、RWT.getClient() を使用することです。

if( RWT.getClient() instanceof WebClient ) { .... }

Web クライアントがアプリケーションにアクセスする場合は ClientDevice が null になる可能性があるため、これは便利な場合があります。これは、モバイル クライアント ATM に対してのみ有効なクライアント サービスです。

于 2013-09-05T06:50:59.603 に答える