توضّح لك الأقسام التالية كيفية التأكّد مما إذا كان المتصفّح التلقائي أو أي متصفّح على جهاز Android متوافقًا مع علامات التبويب المخصّصة.
التحقّق مما إذا كان المتصفّح التلقائي متوافقًا مع علامات التبويب المخصّصة
للتأكّد مما إذا كان المتصفّح التلقائي متوافقًا مع علامات التبويب المخصّصة، استخدِم getPackageName
طريقة المساعدة في CustomTabsClient
:
String packageName = CustomTabsClient.getPackageName(
context,
Collections.emptyList()
);
if (packageName == null) {
// Custom Tabs are not supported by the default browser
}
التحقّق مما إذا كان أي متصفّح على الجهاز متوافقًا مع ميزة "علامات التبويب المخصّصة"
للتحقّق مما إذا كان أي متصفح مثبّت على الجهاز متوافقًا مع علامات التبويب المخصّصة، عليك
البحث عن التطبيقات التي يمكنها معالجة VIEW
intents، واستخراج أسمائها
الحزمة، واستخدام الأسلوب المساعِد
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
}
التغييرات في مستوى رؤية الحِزم في Android 11
أدخل نظام التشغيل Android 11 تغييرات على مستوى ظهور الحِزم. إذا كان تطبيق Android
يستهدف المستوى 30 أو إصدارًا أحدث من واجهة برمجة التطبيقات، عليك إضافة البيان التالي في قسم
طلبات البحث من AndroidManifest.xml
.
بدون هذا البيان، لن تعرِض طريقة queryIntentActivities
النتائج:
<queries>
<intent>
<action android:name=
"android.support.customtabs.action.CustomTabsService" />
</intent>
</queries>
لا يتوفّر أي متصفّح في الجهاز يتيح استخدام علامات التبويب المخصّصة
إذا لم يتوفّر على الجهاز متصفح يتوافق مع ميزة "علامات التبويب المخصّصة" ومحاولة
فتح عنوان URL باستخدام customTabsIntent.launchUrl(context, url)
، قد يؤدي ذلك إلى عدم التمكّن من تنفيذ الإجراء، ما يؤدي إلى ظهور ActivityNotFoundException
.
عليك دائمًا التحقّق من التوافق لضمان تقديم تجربة أفضل للمستخدمين.
يمكنك الرجوع إلى ACTION_VIEW
Intent العادي لفتح عنوان URL في أي متصفّح متاح.