Android
يُستخدم الحقل link لتوجيه المستخدم. يتم استلام هذا الحقل في استجابة نجاح إنشاء المعاملة.
ستجد هنا أفضل طريقة لإدارة تجربة المستخدم في تطبيق Android الخاص بك:
الخطوة 1: استخدام CustomTabs للتكامل
أضف التبعية اللازمة لاستخدام CustomTabs في ملف app/build.gradle الخاص بك:
implementation("androidx.browser:browser:1.5.0")
الخطوة 2: فتح CustomTab
import android.net.Uri
import androidx.activity.ComponentActivity
import androidx.browser.customtabs.CustomTabsClient
import androidx.browser.customtabs.CustomTabsIntent
class CustomTabActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
openCustomTab(<URL_CBU>)
}
fun openCustomTab(url: String) {
val builder = CustomTabsIntent.Builder()
val customTabsIntent = builder.build()
customTabsIntent.launchUrl(this, Uri.parse(url))
}
}
الخطوة 3: تعديل AndroidManifest
أضف الأذونات (permissions) والـ intents اللازمة في ملف AndroidManifest.xml الخاص بالـ Activity التي تريد أن تستقبل callback_uri. من الضروري تضمين السمة (attribute) android:launchMode="singleTop" بالإضافة إلى وسم <data> الذي يوفر بيانات الـ URI.
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-permission android:name="android.permission.CAMERA"/>
// أذونات الكاميرا والموقع الجغرافي مطلوبة
<activity
android:name=".CustomTabActivity"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.Customtabs"
android:launchMode="singleTop">
<intent-filter android:label="Custom Tab">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- الـ scheme والـ host هما البيانات المقدَّمة عند إنشاء العملية في حقل callback_uri
callback_uri: "foobar://success?code=1234" -->
<data android:scheme="foobar" android:host="success"/>
</intent-filter>
</activity>
الأذونات التالية ضرورية لكي يعمل بشكل صحيح:
- الكاميرا
- الموقع الجغرافي
الخطوة 4: الحصول على معلومات الإرجاع
لاسترجاع معلومات إعادة التوجيه (redirect) باستخدام البيانات المقدمة، يمكنك استخدام الكود التالي في طريقة (method) onNewIntent الخاصة بالـ Activity الخاص بك:
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
val url = intent.data
val scheme = url.scheme // "foobar"
val host = url.host // "success"
val code = url.getQueryParameter("code") // "1234"
}
من الممكن أيضًا استخدام الرابط الذي ينشئه Unico في أطر العمل الهجينة (hybrid frameworks). للقيام بذلك، يمكنك إنشاء جسر (bridge) بين إطار العمل المستخدم والإطار الأصلي (native) واتباع ما نقترحه في الوثائق، أو استخدام مكتبة توفر خيارات التكامل هذه.
يقع تكامل WebView في تطبيقك على عاتق العميل وحده، حيث إن هذه الوظيفة غير مقدَّمة كجزء من مكتبات أو حزم SDK الخاصة بـ Unico. لهذا السبب، لا نقدم دعمًا فنيًا للأسئلة أو المشكلات المتعلقة بتنفيذ WebView في تطبيقك. للحصول على إرشادات الإعداد، نوصي بالرجوع إلى الوثائق الرسمية للتقنية المستخدمة في مشروعك (مثل React Native وFlutter وغيرها).