مشکل در درگاه زرین پال بعد از برگشت به اپلیکیشن

0 امتیاز
47 بازدید
سوال شده 1 مهر 1399 توسط android  

سلام وقت بخیر و

من از درگاه زرین پال دارم استفاده میکنم ولی یک مشکلی دارم.

همونطور که میدونید برای استفاده از درگاه زرین پال باید توی مانیفست اینتنت گذاشت برای اکتیویتی تا بعد زا پرداخت در درگاه زرین پال به یک اکتیویتی خاصی برگشت داده بشه و وارد اون اکتیویتی بشه

 

<intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data
                    android:host="anything"
                    android:scheme="anything" />
            </intent-filter>

 

اگر ما توی پروژمون از چندین اکتیویتی استفاده کنیم هیچ مشکلی نیست و همه چی درسته.

اما مشکل زمانی ایجاد میشه که از Navigation component استفاده کنیپ و در واقع single Activity باشیم.

 

حالا سوال من اینه که من وقتی توی فرگمنت هستم و روی دکمه پرداخت میزنم و پرداخت رو انجام میدم, وقتی برگشت داده میشم به اپ میرم به صفحه اکتیویتی اصلی برنامه که تگ dataرو برای اون اکتیویتی ست کردم. اما من میخوام بعد از برگشت به اپ به همون فرگمنت منتقل بشم یا یک فرگمنت دیگه . چجور باید این مورد رو هندل کنم؟

این مطلب را به اشتراک بگذارید

1 پاسخ

0 امتیاز
پاسخ داده شده 28 مهر 1399 توسط ASHKARAN  

با عرض سلام

شما با آدرس اسکیما که وارد کردید می تونید اکتیویتی رو اجرا کنید

مثلا کاربر رو به آدرس

anything://anything?p=something

هدایت می کنید

گوشی سعی می کنه این‌آدرس رو با نرم افزار شما باز کنه

کافیه تو اکتیویتی قطعه کدی بزارید که ورودی ها رو گرفته و بعدش به فراخور نیاز یه فرگمنت رو نشون بده

public static Map<String, String> CallBackQuery ;
if (data != null && data.isHierarchical()) {
    String uri = this.getIntent().getDataString();
    if(uri != null && (uri.contains("?p=") || uri.contains("anything"))) {//it's a deep linking 
    try { 
        CallBackQuery = app.splitQuery( uri ); 
        
    } catch (UnsupportedEncodingException | MalformedURLException e) { }
    } 
    
}

if( CallBackQuery == null || CallBackQuery.size() == 0 || CallBackQuery.containsKey("payment") ) 
return;
//redirect to fragment

 

1,063 سوال

879 پاسخ

1,388 دیدگاه

1,469 کاربر

این مطلب را به اشتراک بگذارید

ali.ashkaran@gmail
ما .....
  • سعی بر پاسخگویی به سوالات دیگران داریم.
  • به سوال و یا نظر دیگران احترام می گذاریم .
  • این وبسایت را به دیگران معرفی می کنیم.
  • همواره صمیمیت و ادب را رعایت می کنیم.
  • به سوالمان برچسب های مرتبط اضافه می کنیم.
  • در حین طرح سوال فرد خاصی را مخاطب قرار نمی دهیم .
...