ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android-Chrome自定义标签在重定向时不会关闭

2019-11-11 14:28:17  阅读:327  来源: 互联网

标签:chrome-custom-tabs oauth-2-0 fitbit android


我正在使用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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有