DeeplinkingをGWTの歴史のトークン内にFacebook iFrameキャンバス

StackOverflow https://stackoverflow.com/questions/2457994

  •  20-09-2019
  •  | 
  •  

質問

たいと思い深いコンポーネントに直接リンクは、GWTのアプリページ内のFacebook iFrameキャンバスに入力します。

最初の部分は簡単に利用GWTの歴史のトークンとUrlのように:

http://www.example.com/MyApp/#page1

を開page1マアプリです。

Facebookアプリ利用申請のようなurl:

http://apps.facebook.com/myAppName

るフレームに私のキャンバスコールバックURL

http://www.example.com/MyApp/

があるので、指定し、キャンバスコールバックurl(またはブックマークのurlのユーザーが特定のページではなく、インデックスページ?

なぜですか?お気軽にご相談ください.ほかのすべての特典を深くリンク...

  • してほしい"への応用"urlにユーザーインデックスページw/マーケティング材料のキャンバスコールバックurl)

  • してほしい"ブックマークのURL"に入ることが返す)のユーザーへのログインページやバイパスのダウンロード"でダウンロード販売コンテンツ(およびその巨大なSWFファイル).

役に立ちましたか?

解決

これはハックのように見えるかもしれないが、ここではそれが行くます。

FacebookはアプリケーションがURLにパラメータにタックすることができます?X = 123

だから私はそれが私の特別な「ページ」パラメータと、そのページのロードが含まれているかどうかを確認するために、ウィンドウの位置を確認しています。以下は、私の解決策は、私はGWT + GWT-プレゼンターのPlaceManagerクラスを使用していることを与えられます。

アプリケーション深いURLは http://apps.facebook.com/myAppNameなってしまいますか?ページ=ページ1

    EventBus eventBus = injector.getEventBus();

    // Load PlaceManager so it can start listening
    PlaceManager placeManager = injector.getPlaceManager();
    String currentPlace = History.getToken();

    String place = Window.Location.getParameter( "page" );
    if (place != null && !place.isEmpty()) {
        // send user to the place on the URL line
        eventBus.fireEvent( new PlaceRequestEvent( new PlaceRequest( new Place (place) ) ));

    } else if ("".equals(currentPlace)) {
        // Nothing in URL, load default GWTpage
        eventBus.fireEvent( new PlaceRequestEvent(new PlaceRequest( IndexPresenter.PLACE)));

    } else {
        // fire a body to the Place Manager to activate the requsted Place
        placeManager.fireCurrentPlace();
    }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top