2016-04-01 2 views
2

GoogleのアプリでChromeのカスタムタブを使用してリンクを開きます。サムスンS6エッジについては問題があります。アプリでリンクをクリックすると、このデバイスはChromeのカスタムタブの代わりに独自のブラウザ(インターネットと呼ばれる)を開きます。戻るボタンを押すと、時には私たちのアプリに戻るのではなく、スタックからインターネットアプリを開くことになります(あなたが最近このブラウジングにこのインターネットアプリを使用した場合)。あなたがブラウジングのために最近インターネットアプリを使用しなかったならば、戻るはあなたのアプリを正しく開くでしょう。サムスンのChromeカスタムタブの代わりにS6エッジデバイスは独自のインターネットブラウザアプリを開きます

答えて

5

カスタムタブは公開されている仕様で、Chrome以外のブラウザでもサポートされています。

このように言われているように、現在のサムスンのインターネットブラウザの実装(4.0.10-51)には、上記の動作を引き起こすバグがあるようです。

一時的な回避策は、カスタムタブを開くときにSamsung IBパッケージを無視することです。 Github DemoのgetPackageNameToUseメソッドでカスタムタブをサポートするブラウザを見つける方法を確認できます。

com.sec.android.app.sbrowserパッケージを無視するようにメソッドを変更します。私はまた、複数のブラウザそのシナリオのために準備する方法を確認するためにカスタムタブBest Practicesでご覧になることをお勧めします

 customTabsIntent.intent.setPackage(packageName); 
     customTabsIntent.launchUrl(activity, uri); 

:次に、あなたはこのようにカスタムタブを開くために使用するパッケージを強制カスタムタブがシステムにインストールされていることをサポートしています。

更新:サムスンのインターネットブラウザ(4.2)の最新バージョンに修正された問題があるようです。改善されたソリューションは、インストールされたブラウザのバージョンが互換性があるかどうかを確認することです。答えのようなものがthis StackOverflow questionで使用できます。カスタムタブのためのグーグルのコード例では

+0

'customTabsIntent.intent'は認識しません** intent ** –

+0

このコードを見て、多分助けてください:https://github.com/GoogleChrome/custom-tabs-client/blob/master/demos/src/ main/java/org/chromium/customtabsdemos/CustomTabActivityHelper.java#L48-L64 – andreban

1

回避策:CustomTabsHelper.java

// Get all apps that can handle VIEW intents. 
    List<ResolveInfo> resolvedActivityList = pm.queryIntentActivities(activityIntent, 0); 
    List<String> packagesSupportingCustomTabs = new ArrayList<>(); 
    for (ResolveInfo info : resolvedActivityList) { 
     Intent serviceIntent = new Intent(); 
     serviceIntent.setAction(ACTION_CUSTOM_TABS_CONNECTION); 
     serviceIntent.setPackage(info.activityInfo.packageName); 
     if (pm.resolveService(serviceIntent, 0) != null) { 

      //If the packagename is not the samsung thing, add it to the list 
      if (! info.activityInfo.packageName.equals("com.sec.android.app.sbrowser")) { 
       packagesSupportingCustomTabs.add(info.activityInfo.packageName); 
      } 

     } 
    } 
2

私はサムスンの最新の携帯電話に多くのカスタムタブのクライアントで確認。 ( - >設定 - >インターネットについてバージョンメニューの項目をチェックするための手順)だから、

私はこの問題は注意をデフォルトのブラウザつまりバージョン4.2の最新バージョンを持っている7のようにサムスンの携帯電話では観察されないことを確認します上記の "com.sec.android.app.sbrowser"パッケージ名を無視またはバイパスする上記のソリューションは、最新の携帯電話には必要ありません。

+0

Samsungパッケージのバージョンは、次のような方法で確認できます。http://stackoverflow.com/questions/8988958/checking-external-app-バージョン名インアンドロイド – andreban

関連する問題