الانتقال إلى المحتوى الرئيسي

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 وغيرها).