نصب و شروع با Flutter

نصب inappify_sdk نسخه 0.2.1، تنظیم Android و iOS، اولین اتصال و تفاوت Flutter Web.

این راهنما برای inappify_sdk 0.2.1 است. عملیات InappifySdk ایستا و دارای یک نشست مشترک‌اند؛ لازم نیست برای هر صفحه یک نمونه بسازید.

نصب بسته

در pubspec.yaml برنامه اضافه کنید:

dependencies:
  flutter:
    sdk: flutter
  inappify_sdk: ^0.2.1

سپس flutter pub get را اجرا کنید. این نسخه حداقل Dart 3.12 و Flutter 3.44 نیاز دارد. نسخه حل‌شده را در pubspec.lock نیز بررسی کنید.

Android

JDK 17 و compileSdk حداقل 37 لازم است. افزونه از Kotlin SDK v0.2.1 استفاده می‌کند؛ آن را دوباره به اپ فلاتر اضافه نکنید. در مخازن وابستگی میزبان، کنار google() و mavenCentral()، مخزن maven { url = uri("https://jitpack.io") } را قرار دهید؛ این تنظیم متعلق به مخازن وابستگی است، نه pluginManagement.

ابزارهای فعلی افزونه Gradle 9.3.1، AGP 9.1.1 و Kotlin 2.4.0 هستند. تنظیم میزبان باید با Flutter و افزونه‌های خودش سازگار باشد؛ AGP 9 با Kotlin داخلی به Flutter 3.47 یا جدیدتر نیاز دارد. برای میزبان قدیمی‌تر مطابق راهنمای Android نسخه منتشرشده عمل کنید و سایر وابستگی‌ها را کورکورانه تغییر ندهید.

برای بازار و مایکت، در MainActivity.kt موجود و با حفظ package واقعی و اتصال‌های دیگر:

package com.example.app

import io.flutter.embedding.android.FlutterFragmentActivity

class MainActivity : FlutterFragmentActivity()

پل خودش Activity جلوی صفحه را به خرید می‌دهد. ارسال Activity از Dart، کپی helper استور و فراخوانی دستی onActivityResult لازم نیست.

iOS

همراه Swift از CocoaPods، متادیتای اپ و Keychain استفاده می‌کند؛ StoreKit پیاده‌سازی نشده است. bundle identifier و نسخه اپ باید معتبر باشند و build number عدد صحیح مثبت باشد. deployment target را مطابق حداقل بالاتر Flutter و وابستگی‌ها تنظیم کنید؛ مقدار podspec به‌تنهایی حداقل قابل اجرای Flutter را تضمین نمی‌کند.

اولین اتصال

پس از WidgetsFlutterBinding.ensureInitialized()، این عملیات را یک بار از سرویس شروع اپ فراخوانی کنید:

import 'package:inappify_sdk/inappify_sdk.dart';

Future<bool> configureMobile(String apiKey, {String? customerId}) async {
  final result = await InappifySdk.configureResult(
    apiKey: apiKey,
    appUserIdentifier: customerId,
  );
  return result.isSuccess;
}

بدون حساب معتبر، configureMobile('YOUR_PUBLIC_APP_KEY')؛ با حسابی که احراز هویت آن در اپ شما تکمیل شده، configureMobile('YOUR_PUBLIC_APP_KEY', customerId: 'customer_123') را استفاده کنید. برای ورود بعدی logInResult(id) را صدا بزنید؛ نبود شناسه به معنی خروج از نشست قبلی نیست.

نمایش و خرید

آفرینگ را از getCurrentOfferingResult(placementIdentifier: 'upgrade') بگیرید، پکیج را نمایش دهید و همان PackageModel را به purchaseResult بدهید. نمونه‌های کامل پکیج، نتیجه و بازیابی در صفحات مربوط‌اند.

متدهای ساده مثل getOfferings() مدل nullable یا bool برمی‌گردانند. نسخه‌های *Result خطای ساختاریافته را حفظ می‌کنند و برای تصمیم خرید و بازیابی مناسب‌ترند. syncAttributesAndOfferingsIfNeeded() خودش Result می‌دهد.

Flutter Web

وب به نصب و بارگذاری فراهم‌کننده JavaScript 0.2.0 پیش از Flutter نیاز دارد؛ pub get آن را bundle نمی‌کند. راهنمای وب و جدول پشتیبانی را بخوانید. همه متدهایی که در facade وجود دارند روی وب پیاده نشده‌اند.

پیکربندی · مرجع همه متدها · مخزن نسخه 0.2.1