بخشهای زیر به شما نشان میدهند که چگونه میتوانید وضعیت آب و هوا را تأیید کنید که مرورگر پیشفرض یا هر مرورگری در دستگاه Android از Tabs سفارشی پشتیبانی میکند.
بررسی کنید که آیا مرورگر پیشفرض از برگههای سفارشی پشتیبانی میکند یا خیر
برای تأیید اینکه آیا مرورگر پیشفرض از Tabs پشتیبانی میکند، از روش کمکی getPackageName
در CustomTabsClient
استفاده کنید:
String packageName = CustomTabsClient.getPackageName(
context,
Collections.emptyList()
);
if (packageName == null) {
// Custom Tabs are not supported by the default browser
}
بررسی کنید که آیا مرورگر دستگاه از تب های سفارشی پشتیبانی می کند یا خیر
برای تأیید اینکه آیا هر مرورگر نصب شده روی دستگاه از Tabs پشتیبانی میکند، باید برنامههایی را که میتوانند مقاصد VIEW
مدیریت کنند، استخراج نام بستهها و استفاده از روش کمکی getPackageName
در CustomTabsClient
جستجو کنید:
// Get all apps that can handle VIEW intents and Custom Tab service connections.
Intent activityIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com"));
PackageManager packageManager = context.getPackageManager();
List<ResolveInfo> resolveInfos = packageManager.queryIntentActivities(activityIntent, PackageManager.MATCH_ALL);
// Extract package names from ResolveInfo objects
List<String> packageNames = new ArrayList<>();
for (ResolveInfo info : resolveInfos) {
packageNames.add(info.activityInfo.packageName);
}
// Get a package that supports Custom Tabs
String packageName = CustomTabsClient.getPackageName(
context,
packageNames,
true /* ignore default */
);
if (packageName == null) {
// Custom Tabs are not supported by any browser on the device
}
تغییر نمایان بودن بسته اندروید 11
اندروید 11 تغییرات دید بسته را معرفی کرده است. اگر برنامه Android شما سطح API 30 یا بالاتر را هدف قرار می دهد، باید اعلان زیر را در بخش جستجوهای AndroidManifest.xml
اضافه کنید.
بدون این اعلان، متد queryIntentActivities
نتایجی را بر نمیگرداند:
<queries>
<intent>
<action android:name=
"android.support.customtabs.action.CustomTabsService" />
</intent>
</queries>
هیچ مرورگری در دستگاه از برگههای سفارشی پشتیبانی نمیکند
اگر هیچ مرورگری که از برگههای سفارشی پشتیبانی میکند در دستگاه موجود نباشد و شما یک URL را با استفاده از customTabsIntent.launchUrl(context, url)
راهاندازی کنید، ممکن است این هدف با شکست مواجه شود و منجر به ActivityNotFoundException
شود.
برای اطمینان از تجربه کاربری بهتر، همیشه یک بررسی سازگاری انجام دهید.
برای باز کردن URL در هر مرورگر موجود، میتوانید به یک هدف استاندارد ACTION_VIEW
بازگشته باشید.