2017-05-06 19 views
0

私たちはアンドロイドアプリに統合されたブランチsdkを持っています。マニフェストの詳細は次のとおりです。Branch.ioのリンクは、アプリケーション内で動作していません

<intent-filter> 
      <data 
       android:host="open" 
       android:scheme="example" /> 
      <data 
       android:host="bnc.lt" 
       android:scheme="https" /> 

      <action android:name="android.intent.action.VIEW" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
     </intent-filter> 

動作していないシナリオである続い

Branch branch = Branch.getInstance(); 
     branch.initSession(new Branch.BranchReferralInitListener() { 
      @Override 
      public void onInitFinished(JSONObject referringParams, BranchError error) { 
       if (error == null) { 
        // params are the deep linked params associated with the link that the user clicked before showing up 
        Log.i("BranchConfigTest", "deep link data: " + referringParams.toString()); 

     }, this.getIntent().getData(), this); 

を次のように初期化コード片です。

1.アプリ内からブランチリンクをクリックすると、上記のコードピースのreferralParamsが空になります。リンクがアプリの外側にある場合、referralParamsのJSONストリングを正しい方法で受け取ることができます。

私は問題を把握することができません。

答えて

1

アレックス支店:これは、となります。リンク先のインフラストラクチャは、同じアプリ内から開かれたリンクを処理するようには設計されていないため、この特定の実装をサポートすることはできません。

+0

こんにちはアレックス、任意の回避策をお勧めしますか?私たちは通常、コンテンツを直接閲覧できるように、アプリ内からユーザーにコンテンツのサポートリンクを送信します。 – karan

+0

私が気づいているわけではありませんが、Androidエンジニアリングチームに新しい開発があるかどうかを確認します。 –

1

アレックスの答えは、現在の正式な回答です!非難された 'shouldOverrideUrlLoading'を使用していた非サポートの非公式の回避策があります。 webviewクライアントをオーバーライドして、Branch固有のリンクを処理し、HTTPS APIを使用してセッションをリセットしたり、他のアプリケーションを開いたり閉じたりせずにリンクデータを取得できます。このデータを取得したら、それをレンダリングします。

は、アプリ内でのWebView内リンクデータの取得、回避策、回避策

private static final String BRANCH_DOMAIN = "yourdomain.app.link"; 
  1. 重視のWebViewオブジェクトに設定WebViewのクライアントを、作成します。

    パブリックブールshouldOverrideUrlLoadingを(のWebView { if(url.contains(BRANCH_DOMAIN)){ //エンドポイントをヒットしてデータを解析する - >データをロードする } else { view.loadUrl(url); } がtrueを返します。 }

    コメントの上 情報で埋めるためにエンドポイントをヒットする方法
  2. からhttps://github.com/BranchMetrics/branch-deep-linking-public-api#endpoint-3

例:カール "https://api.branch.io/v1/url?url=URL_ENCODED_URL_TO_FETCH&branch_key= ..."

^私はこれであることに重点を強調することはできません私はちょうど思いついた、サポートされていない方法なので、仕事が止まったり、理想的ではない場合、私の目や担当者をつかまえたりしないでください。創造的な解決方法を提案しようとしています!

関連する問題