मेरे पास एक ऐसी गतिविधि है जो मेरे ऐप के भीतर एक वेबव्यू में बाहरी यूआरएल लोड करती है। जब मैं उपलब्ध हो तो मैं क्रोम कस्टम टैब का उपयोग करना चाहता हूं लेकिन मैं ऐसे उपकरणों का समर्थन करता हूं जिनके पास क्रोम का संस्करण नहीं है जो उनका समर्थन करता है।मैं कैसे जांच सकता हूं कि क्रोम क्रोम कस्टम टैब का समर्थन करता है या नहीं?
कस्टमटैब्स समर्थित नहीं होने के मामले में मैं अपने पुराने कोड का उपयोग करना चाहता हूं लेकिन कस्टमटैब्सइन्टेंट.बिल्डर() का उपयोग कर सकता हूं। पुराना कोड उस गतिविधि में निहित वेबव्यू में सामग्री लोड करता है जहां मैं अभी भी एक्शनबार प्रबंधित कर सकता हूं।
मैं एक सहायक विधि लिखना चाहता हूं जो मुझे बताएगा कि यह समर्थित है, लेकिन मुझे यकीन नहीं है कि कैसे। डेवलपर पेज पर जानकारी बहुत पतली है: https://developer.chrome.com/multidevice/android/customtabs
यह कहता है कि यदि आप सफल होते हैं तो कस्टम टैब सुरक्षित रूप से उपयोग किए जा सकते हैं। क्या इसका परीक्षण करने के लिए बाध्य करने का कोई आसान तरीका है?
इस तरहमुझे लगता है:
/**
* Check if Chrome CustomTabs are supported.
* Some devices don't have Chrome or it may not be
* updated to a version where custom tabs is supported.
*
* @param context the context
* @return whether custom tabs are supported
*/
public static boolean isChromeCustomTabsSupported(@NonNull final Context context) {
Intent serviceIntent = new Intent("android.support.customtabs.action.CustomTabsService");
serviceIntent.setPackage("com.android.chrome");
CustomTabsServiceConnection serviceConnection = new CustomTabsServiceConnection() {
@Override
public void onCustomTabsServiceConnected(final ComponentName componentName, final CustomTabsClient customTabsClient) { }
@Override
public void onServiceDisconnected(final ComponentName name) { }
};
boolean customTabsSupported =
context.bindService(serviceIntent, serviceConnection, Context.BIND_AUTO_CREATE | Context.BIND_WAIVE_PRIORITY);
context.unbindService(serviceConnection);
return customTabsSupported;
}
यह जांच करेगा कि क्या क्रोम कस्टम टैब अन्य ब्राउज़रों में समर्थित है? – X09