カスタムタブによるコンテンツ共有の改善
2021年2月8日月曜日
この記事はデベロッパー リレーションズ エンジニア、André Bandarra、プロダクト マネージャー、Chirag Desai による Chromium Blog の記事 "Better content sharing with Custom Tabs" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
カスタムタブは Chrome が導入したブラウザ機能で、現在では Android のほとんどの主要ブラウザでサポートされています。WebView を使わなくても、アプリでウェブ エクスペリエンスを細かく制御し、ネイティブ アプリとウェブ コンテンツの間のシームレスな画面遷移を実現できます。ブラウザを使っているときと同じように、ユーザーはカスタムタブに表示されたコンテンツを共有したいと考えることがよくあります。
カスタムタブはデフォルトで共有機能を提供しておらず、多くのアプリはユーザーがコンテンツを共有する方法をまったく提供していません。そのため、ユーザーはブラウザのオーバーフロー メニューから共有アクションを探さなければならず、ユーザー エクスペリエンスが低下します。この操作を行うと、ユーザーはアプリの外に移動してブラウザでリンクを開くことになるので、アプリのエンゲージメントも下がります。
Chrome 88 では、特定の状況で自動的にデフォルトの共有アクションを追加する実験を行っています。たとえば、アプリが独自のアクション ボタンを指定していない場合、トップバーにこのボタンを表示します。サイトで独自のトップバー アクション ボタンが指定されている場合は、デフォルトの共有アクションはオーバーフロー メニューに追加されます。
新しいデフォルトの共有アクション ボタンを使うために必要なこと
何もありません!アプリが独自のアクション ボタンを設定していなければ、デフォルトのアクション ボタンが自動的に追加されます。変更はブラウザ側で行われるので、カスタムタブを使っているすべてのアプリに自動的に適用されます。
注意事項: これは Chrome の動作の変更です。他のブラウザにも同様の機能が追加されることを期待しています。
Reviewed by Eiji Kitamura - Developer Relations Team
カスタムタブは Chrome が導入したブラウザ機能で、現在では Android のほとんどの主要ブラウザでサポートされています。WebView を使わなくても、アプリでウェブ エクスペリエンスを細かく制御し、ネイティブ アプリとウェブ コンテンツの間のシームレスな画面遷移を実現できます。ブラウザを使っているときと同じように、ユーザーはカスタムタブに表示されたコンテンツを共有したいと考えることがよくあります。
カスタムタブはデフォルトで共有機能を提供しておらず、多くのアプリはユーザーがコンテンツを共有する方法をまったく提供していません。そのため、ユーザーはブラウザのオーバーフロー メニューから共有アクションを探さなければならず、ユーザー エクスペリエンスが低下します。この操作を行うと、ユーザーはアプリの外に移動してブラウザでリンクを開くことになるので、アプリのエンゲージメントも下がります。
Chrome 88 では、特定の状況で自動的にデフォルトの共有アクションを追加する実験を行っています。たとえば、アプリが独自のアクション ボタンを指定していない場合、トップバーにこのボタンを表示します。サイトで独自のトップバー アクション ボタンが指定されている場合は、デフォルトの共有アクションはオーバーフロー メニューに追加されます。
アプリでアクション ボタンが提供されていない場合、URL を共有するデフォルトのアクション ボタンがトップバーに追加される
注意事項: これは Chrome の動作の変更です。他のブラウザにも同様の機能が追加されることを期待しています。
アプリで共有アイコンを表示しないようにする方法
androidx.browser バージョン 1.3.0 以降では、
この変更の一環として、
CustomTabsIntent.Builder の setShareState() メソッドを使ってデフォルトの共有を無効にすることができます。
この変更の一環として、
CustomTabsIntent.Builder の addDefaultShareMenuItem() メソッドと setDefaultShareMenuItemEnabled() メソッドは非推奨となっています。代わりに setShareState() を使うようにしてください。
アプリでカスタムタブを使っている方は、ぜひフィードバックをお寄せください。こちらのフォームから連絡することができます。
Reviewed by Eiji Kitamura - Developer Relations Team