Articles of chrome custom tabs

无法在我的Android应用中启动Chrome CustomTabsIntent

我正尝试在我的Android应用程序中使用Chrome自定义标签。 我的MainActivity类扩展AppCompatActivity 。 在onCreate ,我调用startCustomTabs 。 以下是该代码: private void startCustomTab(){ CustomTabsIntent intent = new CustomTabsIntent.Builder().setToolbarColor(getResources().getColor(R.color.colorPrimary)).build(); intent.launchUrl(this, Uri.parse("http://github.com/black-dragon/SaavnExtractor")); } 一旦应用程序启动,它会跟随错误崩溃: 11-16 10:55:38.561 30093-30093/com.nick.saavnextractor E/AndroidRuntime: FATAL EXCEPTION: main Process: com.nick.saavnextractor, PID: 30093 java.lang.NoSuchMethodError: No static method startActivity(Landroid/app/Activity;Landroid/content/Intent;Landroid/os/Bundle;)V in class Landroid/support/v4/app/ActivityCompat; or its super classes (declaration of 'android.support.v4.app.ActivityCompat' appears in /data/data/com.nick.saavnextractor/files/instant-run/dex/slice-com.android.support-support-compat-25.0.0_15c83dd4ec129d2d74bfda2e34f6aeeb93d83fa1-classes.dex) at android.support.customtabs.CustomTabsIntent.launchUrl(CustomTabsIntent.java:262) at com.nick.saavnextractor.MainActivity.startCustomTab(MainActivity.java:325) at com.nick.saavnextractor.MainActivity.onCreate(MainActivity.java:111) at […]

自定义的Chrome标签要求多个浏览器select

我正在试图实现自定义的铬标签。 我正在使用Google的默认库customtabs 。 我将本教程引用为实现自定义镶边选项卡。 现在按照教程中的build议,我做了这样的编码。 mCustomTabsServiceConnection = new CustomTabsServiceConnection() { @Override public void onCustomTabsServiceConnected( ComponentName componentName, CustomTabsClient customTabsClient) { mCustomTabsClient = customTabsClient; mCustomTabsClient.warmup(0L); mCustomTabsSession = mCustomTabsClient.newSession(null); } @Override public void onServiceDisconnected(ComponentName name) { mCustomTabsClient = null; } }; CustomTabsClient.bindCustomTabsService(this, "com.android.chrome", mCustomTabsServiceConnection); CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder( mCustomTabsSession).setShowTitle(true); builder.setToolbarColor(getResources().getColor(R.color.purple_main)); builder.setStartAnimations(getApplicationContext(), R.anim.fadein, R.anim.fadeout); builder.setExitAnimations(getApplicationContext(), R.anim.fadein, R.anim.fadeout); mCustomTabsIntent […]

Chrome自定义标签不能打开其他应用

Chrome custom tabs似乎没有通过深层链接启动其他应用程序。 例如,使用此url启动Chrome可以使用PayPal付款。 它会询问用户是否必须使用PayPal应用程序或Chrome打开该URL。 但是, Chrome custom tabs并非如此。 如果我使用自定义scheme( myapp://deeplinkurl/ ),它可以正常工作。 我如何允许应用程序覆盖httpscheme?

Googlelogin应用程序,而不用将其添加到设备帐户中

我们已经通过WebView使用Google SignIn,但是Google很快就会弃用这个function,有没有其他办法可以做到这一点? 我们有一个稍微特殊的用例,我们的设备在仓库中使用,一个设备被多个用户使用。 我们不希望所有用户都将其帐户添加到每个设备。 这似乎是一个相当合理的用例,但我似乎无法find像这样的案件的官方文档。 有没有解决这个问题? 更新:这里是更详细的用例。 想像一下500名员工的100台设备。 没有一个用户有专门的设备。 每天早上,他们走进来,在接下来的几个小时内发出一个随机的设备。 然后,他们需要通过G Suite SSOlogin到我们预先安装的应用程序,完成工作并在退出后返回设备。 现在,我们通过webview实现SSO,因为我们不希望每个员工每天都在设备上设置一个Google帐户。 有了这个新系统,我们没有其他select,只能请低技术的工人来设置包括同步选项在内的完整设备。 我们仍然希望使用来自G Suite帐户的Google SSO,但不希望将帐户链接到设备本身。

如何使用Chrome自定义选项卡(Fitbit API)进行OAuth 2.0login

Fitbit API不再支持webview。 所以,我研究了Chrome自定义选项卡,并在我的应用程序中应用。 但login后,当我按下这个粉红色的button(允许button),什么都没有发生。 我如何获得访问令牌并将其存储在应用程序中? 请帮帮我。 谢谢。

Android Chrome自定义选项卡/ Fitbit Web API将不会redirect,如果应用程序已被授权。 (OAuth2.0的)

我打算创build一个第三方fitbit应用程序的闹钟同步。 不过,在注册我的应用程序时,我遇到了一些困难,即使您的客户端已经注册到应用程序,也更明确地获取访问令牌。 (考虑到用户重新安装他的应用程序的情况)。 我正在使用Chrome自定义选项卡(因为FitBit禁止使用WebView)来请求访问令牌: String url = "https://www.fitbit.com/oauth2/authorize?" + "response_type=token" + "&client_id=XXXXXX" + "&scope=activity"+ "&redirect_uri=fitbittester://logincallback"; customTabsIntent.launchUrl(MainActivity.this, Uri.parse(url)); redirect到使用意图filter定义的自定义scheme后: <activity android:name=".TestActivity" android:label="TestActivity" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="fitbittester" android:host="logincallback" /> </intent-filter> </activity> TestActivity应该启动,我将从给定的Intent获取我的AccessToken: public class TestActivity extends AppCompatActivity { String string; @Override protected void onNewIntent(Intent intent) { string = intent.getDataString(); } @Override […]

Chrome自定义标签redirect到Android应用将closures该应用

我正尝试使用Android Chrome自定义标签实现OAuth2stream程,但当Chrome自定义标签接收到302应用程序的位置/scheme时,我的应用程序始终是closures的(不会崩溃)。 如果我使用ahref链接创build了一个HTML页面,并手动触摸,Chrome自定义选项卡正确切换到我的应用程序。 似乎在处理服务器302redirect在Chrome自定义选项卡时,它不会正确处理我的自定义应用程序scheme…但为什么? 如果我在股票浏览器或WebView中尝试使用相同的redirecturl,则所有内容都可以正常工作。 这是我目前的设置: MainActiviy.java Button btnChromeCustomTab = (Button) findViewById(R.id.btnChromeCustomTab); btnChromeCustomTab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder().build(); String packageName = CustomTabsHelper.getPackageNameToUse(MainActivity.this); customTabsIntent.intent.setPackage(packageName); Uri theLocationUri = Uri.parse(URL); customTabsIntent.launchUrl(MainActivity.this, theLocationUri); } }); AndroidManifest.xml中 <activity android:name=".MainActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter android:label="@string/filter_title"> <action android:name="android.intent.action.VIEW" […]

使用Android SDK为Facebooklogin启用Chrome自定义标签

我在我的应用程序中使用Facebook SDK版本4.11.0。 根据官方文档页面上列出的步骤,我已经在清单文件中添加了以下内容来启用Chrome自定义选项卡。 <activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <activity android:name="com.facebook.CustomTabActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="@string/fb_login_protocol_scheme" /> </intent-filter> </activity> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id" /> fb_login_protocol_scheme添加到strings.xml ,其值为“fb + app_id” 身份validation过程正常工作没有任何问题。 只关心当我点击loginbutton时,login对话框不会在Chrome自定义选项卡中打开,而是以通常的网页视图对话框格式打开。 在这里有什么缺less的项目添加到Chrome自定义选项卡?

如何将自定义HTTP标头添加到Chrome自定义标签?

使用标准的Android WebViews,您可以使用WebView.loadUrl(String url, Map<String, String> additionalHttpHeaders) 。 如何使用Chrome自定义标签添加其他标头?

Chrome自定义标签和意图filter

该应用程序具有活动来显示特定网站的内容,例如“example.com”。 因此,为了在应用程序中显示“example.com/product/123”的内容,我有意图过滤: <activity android:name=".LinkInterceptorActivity"> <intent-filter android:priority="999"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="www.example.com" android:scheme="http" /> </intent-filter> </activity> 但在某些情况下,我必须在浏览器中显示这些内容,所以我决定使用chrome自定义选项卡,以使其更快,并保持用户在应用程序内。 我试图使用意图生成器来显示自定义选项卡中的url: new CustomTabsIntent.Builder().build().launchUrl(activity, url); 但它显示我'完成操作使用…'对话框,我看到我的应用程序和设备上的所有浏览器。 如果我select我的应用程序,它将跳转到循环并再次显示对话框,但是如果我selectchrome,则按预期工作。 所以问题是如何为Chrome自定义标签创build明确的意图?