2017-03-01 32 views
6

Ben kullanıcı belirli bir kullanıcı işlemi sonrası, Webapp amaç filtreleriOto yakın krom özel sekme

kullanarak uygulama geri yönlendirir benim webapp, yönlendiriliyorsunuz olacaktır telefon tarayıcıyı açmak için kullanılan bir uygulama vardı

<application>  
<activity 
       android:name="com.xyz.sdk.SomeActivity" 
       android:allowTaskReparenting="true" 
       android:configChanges="keyboardHidden|orientation|keyboard|screenSize" 
       android:launchMode="singleTask" 
       android:noHistory="true" 
       android:theme="@android:style/Theme.NoTitleBar"> 
       <intent-filter> 
        <data android:scheme="someString-${applicationId}" /> 
        <action android:name="android.intent.action.VIEW" /> 
        <category android:name="android.intent.category.DEFAULT" /> 
        <category android:name="android.intent.category.BROWSABLE" /> 
       </intent-filter> 
      </activity> 
</application> 
son zamanlarda krom özel sekmelerinde tekrar uygulamaya yönlendirme yaparken

Maalesef, krom özel sekme otomatik kapanmıyor (Webview güvenlik kaygıları nedeniyle bir seçenek değildir) tarayıcı yerine krom Custom Sekmeler kullanarak göç. Uygulamanın yanıt aldığı günlükler aracılığıyla doğrulamam mümkün olsa da, özel sekme açık kalır ve üstte kalır. Böylece, kullanıcı uygulamayı kapatıncaya kadar uygulamada neler olduğunu göremez.

Özel bir sekmeyi başlatırken NEW_TASK bayrağını ayarlamak olan bir geçici çözüm buldum, ancak bu uygulama ve özel sekme, tarayıcıda ilk olarak tarayıcılardan ayrılmamın tüm nedeni olan iki ayrı uygulama olarak görünüyor. yer.

Özetle: Özel bir sekme açan Uygulama A'm var, özel sekmede açılan webapp, amaç filtreleri kullanarak Uygulama A'ya yeniden yönlendiriyor, ancak vustom sekmesi kapanmıyor ve kullanıcı kapanana kadar üstte kalıyor o.

Özel sekme amacı için NO_HISTORY bayrağını ayarlamayı denedim, ancak hiçbir fark yaratmadı.

özel sekme kodu : Ben niyet filtre farklı bir uygulamada geri yönlendirirseniz fark var ardından özel sekme başarıyla kapatan

CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder() 
         .setShowTitle(true) 
         .setToolbarColor(getToolBarColor()) 
         .setStartAnimations(this, android.R.anim.slide_in_left, android.R.anim.slide_out_right) 
         .setExitAnimations(this, android.R.anim.slide_in_left, android.R.anim.slide_out_right) 
         .build(); 
       customTabsIntent.intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
       customTabsIntent.launchUrl(this, Uri.parse(url)); 
       customTabsIntent.launchUrl(this, Uri.parse(url)); 

GÜNCELLEME (onun bir singletop aktivitesini sağlanan ve hiçbir tarihidir true değerine ayarlıyorum) Ancak benim durumumda, özel sekmelerin çağrıldığı aynı etkinliğe yeniden yönlendirmemiz gerekiyor.

cevap

2

Aynı konuyla da karşı karşıya kaldım, ama benim durumumda şimdi çalışıyor.

FLAG_ACTIVITY_NO_HISTORY ve FLAG_ACTIVITY_CLEAR_TOP ile özel sekme başlattım.

customTabsIntent.intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
customTabsIntent.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

Ve launchLode benim etkinlikimin "singleTop" idi.

<activity 
    android:name=".SomeActivity" 
    android:theme="@style/SomeTheme" 
    android:configChanges="keyboardHidden|orientation|screenSize" 
    android:noHistory="true" 
    android:launchMode="singleTop" > 
    <intent-filter> 
     <data android:scheme="intent" /> 
     <data android:scheme="myFile" /> 
     <data android:scheme="myScheme" /> 
     <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
    </intent-filter> 
</activity> 
+0

maalesef işe yaramadı: i önerdi gibi tezahür, ben de 'singleTask' veya 'için 'singleTop' dan fırlatma modunu değiştirerek işe bu olsun başardı hala hiçbir etkisi –

+0

\ tek örnek'. Bu modda, yönlendirme 'onNewIntent' üzerinden aynı Etkinliğe gelir. –

+0

değişti yapılan – bkant