android-Chrome自定义标签在重定向时不会关闭
作者:互联网
我正在使用chrome自定义标签,以从我在应用中成功重定向的自定义标签获取有关重定向的oAuth连接请求.唯一的问题仍然是,Chrome自定义标签不会在重定向停留在堆栈中时关闭.
在自定义标签中启动url的代码如下.
customTabsIntent = new CustomTabsIntent.Builder(mCustomTabsSession)
.setToolbarColor(ContextCompat.getColor(getBaseContext(), R.color.colorPrimary))
.setStartAnimations(getBaseContext(),
R.anim.slide_in_right, R.anim.slide_out_left)
.setExitAnimations(getBaseContext(),
android.R.anim.slide_in_left, android.R.anim.slide_out_right)
.setShowTitle(true)
.build();
customTabsIntent.intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
customTabsIntent.intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
customTabsIntent.launchUrl(Settings_Activity.this, Uri.parse(fitbitUrlBuilder.toString()));
我尝试在清单文件中使用“ singleTask”和“ singleInstance”,但问题仍然存在.
如果我仅使用意图“ FLAG_NO_HISTORY”,它将起作用.
但是我需要强行使用“ FLAG_ACTIVITY_NEW_TASK”,因为在某些情况下,例如删除特定站点的令牌,
并且我们尝试重新验证浏览器,使其在Android 7.1版上崩溃,并且需要再次手动启动该应用.
任何帮助对此表示赞赏.
解决方法:
尝试验证oAuth提供程序时遇到相同的问题.我使用自定义标签25.3.1和使用addFlags而不是setFlags来使代码工作:
build.gradle
dependencies {
...
compile 'com.android.support:customtabs:25.3.1'
}
MyActivity.java
public void dispatchAuthIntent() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
// Use Chrome Custom Tabs
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder()
.setToolbarColor(ContextCompat.getColor(getBaseContext(), R.color.brand_blue_dark))
.setShowTitle(true)
.build();
customTabsIntent.intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
customTabsIntent.intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
customTabsIntent.launchUrl(this, Uri.parse(url));
}
// ...
}
标签:chrome-custom-tabs,oauth-2-0,fitbit,android 来源: https://codeday.me/bug/20191111/2020316.html