ورچر

آموزشهای پراکنده از دنیای برنامه نویسی اندروید

آموزش کوتاه - بازگشت مستقیم به اپ از یک آدرس وب post image

آموزش کوتاه - بازگشت مستقیم به اپ از یک آدرس وب

تگ ها : اندروید,آموزش اندروید,android,android programming,deeplinking,redirecting_to_app,وارد شدن مستقیم به اپ,انلینک دادن به اپ,بازگشت به اپ از وب
آخرین ویرایش : 1396/11/16

باسلام

مدتی است در گروه ها با سوال روش برگشتن مستقیم به اپ از طریق درگاه پرداخت و یا آدرس وب مواجه میشم که خواستم یه راهنمای ساده در این مورد تهیه کنم بلکه نیاز دوستان برطرف شد.

برای برگشت به داخل اپ و یا بازشدن یک آدرس خاص از روش دیپ لینک استفاده میشود. این روشی که درحال توضیح هستم یک حالت خاصی از دیپ لینک می باشد که مزیتش نپرسیدن اپلیکیشن منبع می باشد چون آدرس های دیپ لینک با مرورگر هم ممکنه باز بشه.

 

آموزش سمت وب

برای بازگشت به اپ مورد نظر باید در سمت سرور خود به آدرسی با ساختار زیر ریدارکت کنیم.

intent://123#Intent;scheme=varchar;package=ir.technopedia.redirect;end


عدد بعد intent:// مقداری می باشد که برای اپ ارسال میکنیم.


scheme=varchar
قسمت varchar با توجه به تعریف شما در منیفست اپلیکیشن میتواند متفاوت باشد.

package=ir.technopedia.redirect
مقدار package هم که نام پکیج اپلیکیشنی هست که میخواهید به آن برگردید.

 

آموزش اپلیکیشن

1- یک اکتیویتی به اپلیکیشن خود اضافه کنید. و در قسمت منیفست تغییرات زیر را به اکتیویتی مورد نظر اعمال کنید.این تغییرات باعث فعال شدن دیپ لینک در اپلیکیشن می شود.

        <activity android:name=".RecieverActivity">
            <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:scheme="varchar" /> // مقداری که در توضیح آموزش سمت وب نوشته بودم وابسته به منیفست می باشد.
            </intent-filter>
        </activity>

2- کدهای زیر را در تابع onCreate اکتیویتی خود کپی کنید و حالت های مختلف را هندل کنید.
در این آموزش برای هر مقدار دریافتی عددی فقط toast نمایش میدیم.

public class RecieverActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_reciever);


        Intent in = getIntent();
        Uri data = in.getData();
// دو سطر بالا دیتاهای ارسال شده به اکتیویتی را دریافت مینماید و به data کپی میکند.
        if (data != null) {

// در سطر زیر عبارت "varchar://" را از داده های دریافتی حذف مینماییم این عبارت همان بخش scheme موجود در منیفست می باشد.
            String rdata = data.toString().replace("varchar://", "");

// حال rdata شامل داده هاییست که بعد intent:// در قسمت آموزش سمت وب فرستاده شده است می باشد.
//برای این آموزش فقط عدد ارسال کرده ایم. و حالت های مختلف را با توست هندل میکنیم.
            if (rdata.equals("1")) {
                Toast.makeText(getBaseContext(), "موفقیت", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(getBaseContext(), "عدم موفقیت", Toast.LENGTH_LONG).show();
            }
        }


    }
}

 

 

برای مشاهده نتایج آموزش میتوانید یک اپلیکیشن با پکیج نیم ir.technopedia.redirect ایجاد نمایید و کدهای معرفی شده را به آن اضافه کرده و در گوشی خود نصب نمایید. برای تست نیز میتوانید از آدرس http://varchar.ir/result?status=1 با مقادیر status متفاوت در مرورگر گوشی تست نمایید تا ببینید وارد اپ میشود یا نه؟ :))