التوثيق

اختر مسار التكامل

لا تستخدم حزمة shernova القديمة

حزمة shernova (1.x) على pub.dev مهملة. أضف دائماً shernova_core (^2.0.0). shernova_ui اختياري. إذا كان pubspec.yaml يحتوي shernova: احذفها: dart pub remove shernova && dart pub add shernova_core:^2.0.0.

الأساس مقابل UI اختياري

shernova_core إلزامي. shernova_ui اختياري — للشاشات الجاهزة أو استخدم API headless وابنِ واجهتك.

الحزمةالإصدارالدور
shernova_core2.0.1إلزامي — SDK headless
shernova_ui2.3.1اختياري — verifyPhone() + afterVerified
shernova_cli2.0.0setup (--with-ui للواجهة الاختيارية)

التثبيت — المسار A (headless)

bash
dart pub add shernova_core:^2.0.0
dart pub add --dev shernova_cli:^2.0.0
dart run shernova_cli setup --pk pk_test_YOUR_KEY --app-id YOUR_APP_UUID

التثبيت — المسار B (UI اختياري)

bash
dart pub add shernova_core:^2.0.0 shernova_ui:^2.0.0
dart pub add --dev shernova_cli:^2.0.0
dart run shernova_cli setup --pk pk_test_YOUR_KEY --app-id YOUR_APP_UUID --with-ui

التهيئة

dart
import 'package:shernova_core/shernova_core.dart';
import 'shernova_config.dart';

await Shernova.init(shernovaConfig);

Headless (shernova_core فقط — موصى به)

dart
final session = await Shernova.verify(phoneNumber: '+201012345678');
await for (final u in Shernova.watch(session.sessionId)) {
  if (u.status == 'verified') {
    await Shernova.getReceipt(session.sessionId);
    break;
  }
}

تدفق UI اختياري (shernova_ui)

dart
import 'package:shernova_core/shernova_core.dart';
import 'package:shernova_ui/shernova_ui.dart';
import 'shernova_config.dart';

await Shernova.init(shernovaConfig);

final session = await verifyPhone(
  context: context,
  phoneNumber: '+201012345678',
);

Branding من السيرفر (ui_theme)

من shernova_core 2.0.1+ / shernova_ui 2.3.0+، POST /v1/sdk/token يعيد ui_theme (logo_url, logo_size_dp, footer_font_size_sp). تحديث الشعار من Dashboard دون إعادة نشر التطبيق.

Android auto-return

من shernova_ui 2.2.0+، verifyPhone() يراقب حالة المكالمة عبر foreground service ويعيد التطبيق تلقائياً. امنح Phone و Notifications و Call phone عند الطلب.

النشر على Google Play يتطلب إعلانات FGS و Phone عند استخدام shernova_ui. راجع النشر على Google Play.

التحقق على iOS

على iOS نفس الحزم تعمل بدون auto-return — المستخدم يعود يدوياً. راجع iOS و App Store.

مفاتيح test (pk_test_ / sk_test_)

استخدم pk_test_ / sk_test_ في builds التطوير. الجلسات تستخدم بوابات Android حقيقية وتستهلك رصيداً — اتصل بـ gateway_phone_number من نفس الهاتف. pk_live_ للإنتاج.

الأخطاء

SDK يرمي ShernovaError مع errorCode (SH_xxx). راجع أكواد الأخطاء.