Chrome Egyéni TabsEdit PagePage Történelem

Áttekintés

Chrome egyéni fül alkalmazások részletesebb irányítást ad a webes tapasztalat, hogy közötti átmenetek natív, illetve a web content több zökkenőmentes anélkül, hogy igénybe egy WebView.

a Chrome Egyéni lapjai lehetővé teszik az alkalmazások számára, hogy testre szabják a Chrome kinézetét és érzését. Egy alkalmazás megváltoztathatja a dolgokat, mint a:

  • eszköztár színe
  • be-és kilépési animációk
  • egyéni műveletek hozzáadása a Chrome eszköztárhoz és a túlcsordulás menühöz

a Chrome Egyéni lapjai lehetővé teszik a fejlesztő számára a Chrome előzetes indítását és a tartalom előzetes letöltését a gyorsabb betöltés érdekében.

a Chrome Egyéni lapjainak használatának további módjait ebben a README-ben találja.

Beállítás

telepítenie kell a Chrome alkalmazást a telefonjára. Ha emulátort használ, be kell állítania a Google Play szolgáltatásokat, és telepítenie kell a Chrome alkalmazást a Play Áruházban.

add hozzá a Chrome Egyéni lapjainak Android Támogatási könyvtárát függőségként a gradle build fájlhoz:

implementation 'com.android.support:customtabs:25.2.0'

a könyvtár csak akkor működik, API 16 (Jelly Bean) a fenti. Ha támogatja a korábbi API-t, hozzáadhatja a <uses-sdk tools:overrideLibrary="android.support.customtabs"/> értéket a manifest-hez, hogy kényszerítse annak használatát, ellenőrizze az API verzióját futásidőben, és csak használja a Chrome Egyéni lapjait, ha >= 16

használat

a legalapvetőbb példa a Chrome lap elindítására egy egyéni szándékon keresztül, az alábbiak szerint:

// Use a CustomTabsIntent.Builder to configure CustomTabsIntent.String url = "https://www.codepath.com/";CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();// set toolbar color and/or setting custom actions before invoking build()// Once ready, call CustomTabsIntent.Builder.build() to create a CustomTabsIntentCustomTabsIntent customTabsIntent = builder.build();// and launch the desired Url with CustomTabsIntent.launchUrl()customTabsIntent.launchUrl(this, Uri.parse(url));

ha nincs telepítve a Chrome, a szándék elindítja az eszközre telepített alapértelmezett böngészőt. A CustomTabsIntent egyszerűen elindít egy implicit szándékot (android.intent.action.VIEW), és továbbít egy extra adatot a szándékban (azaz android.support.customtabs.extra.SESSION és android.support.customtabs.extra.TOOLBAR_COLOR), amelyet figyelmen kívül hagy, ha az alapértelmezett böngésző nem tudja feldolgozni ezt az információt.

Egyéb beállítások konfigurálása

További beállítások konfigurálásához a builder osztály használata szükséges. Ha egyéni ikonokat vagy műveleteket szeretne hozzáadni a menühöz, akkor ehhez függőben lévő szándékokat kell létrehoznia.

eszköztár színének beállítása

ha az eszköztár színét szeretné beállítani, használhatja a setToolbarColor() módszert a builder osztályban:

CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();// set toolbar colorbuilder.setToolbarColor(ContextCompat.getColor(this, R.color.colorAccent));

normális esetben context.getResources().getColor()) használható, de az Android API 23-ban ez a módszer elavult. Ezért ebben az útmutatóban megtudhatja, hogyan lehet beépíteni a tervezési támogatási könyvtárat egy új ContextCompat API kihasználásához.

megosztás művelet hozzáadása

alapértelmezés szerint a Chrome lap nem tartalmazza a megosztási műveletet az eszköztáron. A menüpontok listájához azonban hozzáadhat egy alapértelmezettet:

CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();// add share action to menu listbuilder.addDefaultShareMenuItem();

egyéni ikonok hozzáadása

ha egy adott ikont (például a Megosztás ikont) szeretne hozzáadni az eszköztárhoz, akkor először hozzá kell adnia az ikont a New -> Image Asset (jelenleg a Chrome lapok nem támogatják a vektoros rajzokat, ezért PNG fájlokat kell használnia ikonként):

jegyezze fel a mentett fájlt. Létre kell hoznunk egy bitképet későbbi használatra:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_action_name);

ezután hozza létre a szándékot:

Intent intent = new Intent(Intent.ACTION_SEND);intent.setType("text/plain");intent.putExtra(Intent.EXTRA_TEXT, "http://www.codepath.com");

ezután létre kell hoznia egy függőben lévő szándékot (további információkért lásd ezt a YouTube-klipet), amely az alkalmazás felébresztésére szolgál, amikor a felhasználó rákattint az ikonra. Ezt a függőben lévő szándékot át kell adni a Chrome Tabs szándékkészítőnek:

int requestCode = 100;PendingIntent pendingIntent = PendingIntent.getActivity(this, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);

végül át kell adnunk a létrehozott bitképet, szöveget és függőben lévő szándékot:

CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();// Map the bitmap, text, and pending intent to this icon// Set tint to be true so it matches the toolbar colorbuilder.setActionButton(bitmap, "Share Link", pendingIntent, true);CustomTabsIntent customTabsIntent = builder.build();

a Chrome Egyéni lapjai lehetővé teszik a fejlesztő számára a Chrome előzetes indítását és a tartalom előzetes letöltését a gyorsabb betöltés érdekében.

másolja a következő fájlokat a GoogleChrome minta git repo-ból a projektbe, és ennek megfelelően módosítsa a csomagneveket:

  • CustomTabActivityHelper.java
  • CustomTabsHelper.java
  • KeepAliveService.java
  • ServiceConnection.java
  • ServiceConnectionCallback.java

a következő módszerrel nyissa meg a Chrome Egyéni lapját, ha lehetséges. Ha a felhasználónak nincs olyan böngészője, amely támogatja a Chrome Egyéni lapjait, akkor megnyitja az alapértelmezett böngészőt:

CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder().build();CustomTabActivityHelper.openCustomTab(this, customTabsIntent, uri, new CustomTabActivityHelper.CustomTabFallback() { @Override public void openUri(Activity activity, Uri uri) { Intent intent = new Intent(Intent.ACTION_VIEW, uri); activity.startActivity(intent); } });

következő lépések

a fenti gyorsintegrációs példa bemelegítés, ELŐLETÖLTÉS vagy felhasználói felület testreszabása nélkül nyitja meg az Uri-t egy Chrome Egyéni lapon.

a Google Chrome csapatának ServiceConnectionActivity mintáján talál egy példát arra, hogyan csatlakozhat a Chrome Egyéni lapok szolgáltatáshoz a bemelegítés és az előletöltés használatához.

a felhasználói felület lehetséges testreszabásával kapcsolatos további információkért tekintse meg a Google Chrome csapatának CustomUIActivity mintáját.



+