2017-03-01 16 views
6

मैं एक ऐप्लिकेशन है जो फोन ब्राउज़र, जहां उपयोगकर्ता मेरी webapp, जहां एक निश्चित उपयोगकर्ता कार्रवाई के बाद, webapp वापस ऐप्स पर आशय फिल्टरऑटो करीब क्रोम कस्टम टैब

का उपयोग कर पुनर्निर्देश पर पुनः निर्देशित किया जाएगा खोलने के लिए किया था
<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> 

हाल ही में मैं ब्राउज़र के बजाय chrome कस्टम टैब का उपयोग कर के लिए चले

दुर्भाग्य से, जब वापस ऐप्स पर chrome कस्टम टैब में पुनः निर्देशित क्रोम कस्टम टैब नहीं ऑटो पास करता है (वेब-दृश्य सुरक्षा चिंताओं की वजह से एक विकल्प नहीं है)। भले ही मैं ऐप को प्रतिक्रिया प्राप्त करने वाले लॉग के माध्यम से सत्यापित कर सकूं, कस्टम टैब खुला रहता है और शीर्ष पर रहता है, इसलिए उपयोगकर्ता ऐप को बंद होने तक ऐप पर क्या हो रहा है, यह नहीं देख सकता है।

मुझे एक वर्कअराउंड मिला जो मेरा कस्टम टैब शुरू करते समय NEW_TASK ध्वज सेट करना था, लेकिन इससे मेरा ऐप और कस्टम टैब दो अलग-अलग ऐप्स के रूप में दिखाई देता है, जो पूरे कारण में ब्राउज़र से दूर चला गया जगह।

संक्षेप में: मेरे पास ऐप ए है, जो एक कस्टम टैब खोलता है, कस्टम टैब में खोला गया वेबपैप ऐप ए पर वापस ऐप ए पर रीडायरेक्ट करता है, लेकिन वर्चुअल टैब बंद नहीं होता है और जब तक उपयोगकर्ता बंद नहीं हो जाता तब तक शीर्ष पर रहता है यह।

मैं कस्टम टैब आशय के लिए NO_HISTORY ध्वज स्थापित करने की कोशिश की है, लेकिन यह कोई फर्क नहीं बनाया है।

कस्टम टैब कोड:

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)); 

अद्यतन मैंने महसूस किया है कि अगर लक्ष्य फ़िल्टर कोई दूसरा एप्लिकेशन को वापस भेज सकतीं, तो कस्टम टैब सफलतापूर्वक बंद कर देता है (इसकी एक singletop गतिविधि प्रदान की है और कोई इतिहास नहीं है सत्य पर सेट करें) लेकिन मेरे मामले में, हमें उसी गतिविधि पर रीडायरेक्ट करने की आवश्यकता है जिससे कस्टम टैब लागू किए गए थे।

उत्तर

2

मैं भी यही मुद्दा का सामना करना पड़ रहा था, लेकिन मेरे मामले में अपने अब काम कर रहा।

मैं FLAG_ACTIVITY_NO_HISTORY और FLAG_ACTIVITY_CLEAR_TOP साथ कस्टम टैब का शुभारंभ किया।

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

और मेरी गतिविधि का लॉन्चमोड "सिंगलटॉप" था।

<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

दुर्भाग्य से काम नहीं किया: \ –

+0

मैं प्रकट अभी भी कोई प्रभाव नहीं –

+0

मैं इस पाने के लिए या तो 'singleTask' या 'करने के लिए' singleTop 'से लांच मोड बदलकर काम करने में सक्षम था बदल की तरह आप का सुझाव दिया, बनाया एक घटना'। इस मोड में, रीडायरेक्ट 'onNewIntent' के माध्यम से एक ही गतिविधि पर आ जाएगा। – bkant

संबंधित मुद्दे