অ্যান্ড্রয়েড ডেভেলপারদের কখনও কখনও তাদের অ্যাপের প্রয়োজনীয়তা পূরণের জন্য একটি ক্ষণস্থায়ী ওয়েব অভিজ্ঞতার প্রয়োজন হয়। একটি ক্ষণস্থায়ী কাস্টম ট্যাব হল একটি বিশেষ কাস্টম ট্যাব যা একটি অ্যাপের মধ্যে থেকে একটি সম্পূর্ণ বিচ্ছিন্ন ওয়েব ব্রাউজার চালু করে৷ এটি প্রমাণীকরণ কৌশলগুলির জন্য ব্যবহার করা যেতে পারে যা ব্রাউজার বা ওয়েব সেশনের সাথে লগইন অবস্থা সিঙ্ক করা উচিত নয় যেখানে ডেটা রাখা উচিত নয়, যেমন একটি ব্যক্তিগত ব্রাউজিং মোড।
ডিফল্টরূপে, কাস্টম ট্যাবগুলি ব্যবহারকারীর ব্রাউজার থেকে রাজ্য এবং বৈশিষ্ট্যগুলি ভাগ করে। একটি ক্ষণস্থায়ী কাস্টম ট্যাবে, কুকিজ, ক্যাশে করা ফাইল, ইতিহাস, শংসাপত্র এবং অন্যান্য ডেটা শুধুমাত্র সেশনের উদাহরণের সুযোগে বিদ্যমান থাকে। যখন কাস্টম ট্যাব অ্যাক্টিভিটি বন্ধ থাকে, তখন কোনো ট্রেস ছাড়াই ডেটা মুছে ফেলা হয়।
কাস্টম ট্যাবের মতো, একটি ক্ষণস্থায়ী কাস্টম ট্যাবকে অ্যাকশন এবং UI থিমিং দিয়ে কাস্টমাইজ করা যেতে পারে। আপনি যদি ইতিমধ্যেই প্রমাণীকরণ কৌশলগুলির জন্য Auth Tab ব্যবহার করে থাকেন তবে লঞ্চের অভিপ্রায়ে ক্ষণস্থায়ী ব্রাউজিং যোগ করা যেতে পারে, প্রক্রিয়াটিতে গোপনীয়তার আরেকটি স্তর যুক্ত করে।
ক্ষণস্থায়ী কাস্টম ট্যাবগুলি Chrome 130 থেকে উপলব্ধ এবং কোডের একটি একক লাইন দিয়ে তাৎক্ষণিক করা যেতে পারে৷ ব্যবহারকারীদের জন্য যেখানে বৈশিষ্ট্যটি উপলব্ধ নেই, আপনি ক্ষণস্থায়ী ব্রাউজিং সক্ষম আছে কিনা তা যাচাই করতে পারেন এবং নির্বিঘ্নে ফলব্যাক বিকল্পগুলিকে সংহত করতে পারেন৷
একটি ক্ষণস্থায়ী সেশন চালু করুন
ক্ষণস্থায়ী কাস্টম ট্যাবগুলির জন্য AndroidX ব্রাউজার লাইব্রেরি প্রয়োজন৷ AndroidX ব্রাউজার লাইব্রেরি একটি প্রকল্পের build.gradle
ফাইলের নির্ভরতা বিভাগে যোগ করা যেতে পারে। এপিআই একটি আলফা বিল্ডে উপলব্ধ। আপনার বিল্ড ফাইলে নিম্নলিখিত যোগ করুন:
dependencies {
implementation 'androidx.browser:browser:1.9.0-alpha01'
}
একটি ক্ষণস্থায়ী ব্রাউজিং সেশন তৈরি করতে, CustomTabsIntent
এ প্রদত্ত কাস্টম সেটার ব্যবহার করুন:
// In your activity
String url = "https://developers.android.com";
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder()
.setEphemeralBrowsingEnabled(true)
.build();
customTabsIntent.launchUrl(MainActivity.this, Uri.parse(url));
যেহেতু ক্ষণস্থায়ী ব্রাউজিং স্ট্যান্ডার্ড ক্রোম কাস্টম ট্যাব বাস্তবায়নে একটি অতিরিক্ত উদ্দেশ্য দ্বারা ট্রিগার করা হয়, তাই কাস্টমাইজেশনগুলি সাধারণ কাস্টম ট্যাবের মতোই যোগ করা যেতে পারে।
// Add customizations
String url = "https://developers.android.com";
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder()
.setEphemeralBrowsingEnabled(true)
.setUrlBarHidingEnabled(false)
.setShareState(CustomTabsIntent.SHARE_STATE_OFF)
.setCloseButton(BitmapFactory.decodeResource(getResources(), R.drawable.ic_back_arrow))
.build();
customTabsIntent.launchUrl(MainActivity.this, Uri.parse(url));
Auth Tab ব্যবহার করে ডেভেলপারদের জন্য, AuthTabIntent
এ ক্ষণস্থায়ী ব্রাউজিং সেটার যোগ করুন:
// Add ephemeral browsing to Auth Tab
AuthTabIntent authTabIntent = new AuthTabIntent.Builder()
.setEphemeralBrowsingEnabled(true)
.build();
authTabIntent.launch(launcher, uri, redirectScheme);
কিছু কাস্টমাইজেশন পরিবর্তন করা হয়েছে বা একটি ক্ষণস্থায়ী ট্যাবে অনুপলব্ধ:
- ইতিহাস একটি ক্ষণস্থায়ী অধিবেশন লগ ইন করা হয় না.
- ব্যবহারকারীরা বর্তমান পৃষ্ঠা ডাউনলোড করতে অক্ষম।
- একটি নতুন Chrome ট্যাবে খোলার জন্য একটি লিঙ্ককে দীর্ঘক্ষণ চাপ দেওয়া অক্ষম করা হয়েছে৷
- ওভারফ্লো মেনু সহ ডিফল্ট ব্রাউজারে বর্তমান পৃষ্ঠা খোলার বিকল্পটি ছদ্মবেশী মোডে একটি ব্রাউজার উইন্ডো চালু করে।
পূর্বের বাস্তবায়নে পতন
সমস্ত ব্যবহারকারীর ডিভাইসের ক্ষণস্থায়ী কাস্টম ট্যাবে চালু করার ক্ষমতা নেই। এই কেসগুলি পরিচালনা করার জন্য, বিকাশকারীরা অন্তর্নিহিত ব্রাউজারটি ক্ষণস্থায়ী ব্রাউজিং সমর্থিত কিনা তা নির্ধারণ করতে অনুসন্ধান করতে CustomTabsClient
ব্যবহার করতে পারে। এর জন্য CustomTabsClient
এর সাথে একটি পরিষেবা সংযোগ প্রয়োজন। এটি সম্পন্ন করার জন্য, একটি সফল বাইন্ডিং এর পরে প্রদত্ত CustomTabsClient
অ্যাক্সেস করতে একটি নতুন CustomTabsServiceConnection
চালু করুন।
// in your activity
CustomTabsServiceConnection connection = new CustomTabsServiceConnection() {
@Override
public void onCustomTabsServiceConnected(@NonNull ComponentName name, @NonNull CustomTabsClient client) {
CustomTabsSession session = client.newSession(null);
try {
if (session.isEphemeralBrowsingSupported(Bundle.EMPTY)) {
// launch ephemeral tab
} else {
// fallback
}
} catch (RemoteException e) {
// fallback
}
}
@Override
public void onServiceDisconnected(ComponentName componentName) { }
};
CustomTabsClient.bindCustomTabsService(this, "com.android.chrome", connection);
অ্যাপগুলি পরিষেবা প্রদানকারী ব্যবহারকারীদের যারা এখনও ক্ষণস্থায়ী কাস্টম ট্যাবগুলিতে অ্যাক্সেস নেই তারা অন্যান্য পদ্ধতি ব্যবহার করতে পারে, যেমন ক্যাশিং অক্ষম সহ একটি ওয়েবভিউ৷ একটি বাস্তবায়নের একটি উদাহরণ যা এফেমেরাল কাস্টম ট্যাবগুলিকে ওয়েবভিউতে ফলব্যাক সহ ব্যবহার করে Android ব্রাউজার হেল্পার লাইব্রেরিতে পাওয়া যায়৷