Flutter应用内购买插件flutter_onestore_inapp的使用

Flutter应用内购买插件flutter_onestore_inapp的使用

Flutter应用内购买插件flutter_onestore_inapp的使用

flutter_onestore_inapp

这是一个用于ONE store In-App Purchase的Flutter插件。

更多信息,请参阅 Developer Center。

开始使用

ONE store IAP预准备

在开始之前,您需要完成以下步骤:

会员注册

注册应用程序

安装

添加包

使用Flutter命令行添加依赖:

$ flutter pub add flutter_onestore_inapp

在pubspec.yaml文件中添加依赖:

dependencies:

flutter_onestore_inapp: ^0.3.0

点击’pub get’下载包或在命令行运行flutter pub get。

添加到build.gradle

将maven地址添加到项目的build.gradle中:

allprojects {

repositories {

maven { url 'https://repo.onestore.net/repository/onestore-sdk-public' }

}

}

修改AndroidManifest.xml

如果目标SDK版本为30(OS 11)或更高,则必须添加以下以确保In-App库正常工作:

...

...

...

使用方法

导入并使用该插件:

import 'package:flutter_onestore_inapp/flutter_onestore_inapp.dart';

您可以参考以下链接了解更多使用方法:

请求登录

更新购买数据

查询产品详情

启动购买流程

查询购买记录

更新订阅

打开订阅管理

安装ONE store服务(OSS)

Android Proguard 规则

由于已经混淆并在aar中,所以需要将包添加到proguard规则中:

# Core proGuard rules

-keep class com.gaa.sdk.base.** { *; }

-keep class com.gaa.sdk.auth.** { *; }

# Purchasing proGuard rules

-keep class com.gaa.sdk.iap.** { *; }

# Licensing proGuard rules

-keep class com.onestore.extern.licensing.** { *; }

注意事项

此插件使用了json_serializable来处理平台层与Dart之间的多个数据结构。修改任何序列化数据结构后,通过运行以下命令重新生成序列化器:

flutter packages pub run build_runner build --delete-conflicting-outputs

或者,如果您希望监视文件系统中的更改,可以运行:

flutter packages pub run build_runner watch --delete-conflicting-outputs

示例代码

以下是使用flutter_onestore_inapp的一个简单示例应用:

import 'package:flutter/material.dart';

import 'package:provider/provider.dart';

import 'purchase_view_model.dart';

import 'res/theme.dart';

import 'view/details/subscription_detail_page.dart';

import 'view/home/home_page.dart';

import 'view/license/check_license_page.dart';

void main() {

WidgetsFlutterBinding.ensureInitialized();

runApp(

// 注册用于ChangeNotifier的Provider。

ChangeNotifierProvider(

create: (context) => PurchaseViewModel(),

child: const MyApp(),

));

}

class MyApp extends StatelessWidget {

const MyApp({Key? key}) : super(key: key);

@override

Widget build(BuildContext context) {

return MaterialApp(

theme: ThemeData(

primarySwatch: Colors.blue,

textTheme: const TextTheme(

displayLarge: AppThemes.titleTextTheme,

displayMedium: AppThemes.bodyPrimaryTextTheme,

displaySmall: AppThemes.bodyPrimaryTextTheme)),

// 主页面

home: const HomePage(),

onGenerateRoute: (settings) => generatedRoutes(settings));

}

}

Route? generatedRoutes(RouteSettings settings) {

switch (settings.name) {

case '/subscription/detail':

final args = settings.arguments as Map;

return MaterialPageRoute(builder: (context) {

return SubscriptionDetailPage(

productId: args['productId'],

);

});

case '/check/license':

return MaterialPageRoute(builder: (context) => const CheckLicensePage());

default:

return null;

}

}

这个示例展示了如何初始化和配置一个包含内购功能的Flutter应用,包括设置主题、主页以及路由处理。

相关作品

奇迹mu 必知的各地图挂机需求一览
假的365不让提款怎么办

奇迹mu 必知的各地图挂机需求一览

📅 07-04 👀 1624
Win10自带游戏在哪里?Win10自带游戏位置介绍
日博365官网

Win10自带游戏在哪里?Win10自带游戏位置介绍

📅 07-13 👀 7755
家常烧鲅鱼独家
日博365官网

家常烧鲅鱼独家

📅 07-25 👀 4072