Я пытаюсь следовать вместе с документацией о покупке в приложении для Flutter. Я столкнулся с проблемой в самом начале, потому что пример кода, который мне дают для инициализации плагина, выдает ошибку
The method '_handlePurchaseUpdates' isn't defined for the class '_MyTabbedPageState'.
Try correcting the name to the name of an existing method, or defining a method named '_handlePurchaseUpdates'.
В моем приложении также есть страницы с вкладками, поэтому я попытался объединить класс _MyAppState из документация с моим классом _MyTabbedPageState. Ниже приведен пример моего кода. Я получаю сообщение об ошибке _handlePurchaseUpdates(purchases);
и не знаю, что делать
class MyTabbedPage extends StatefulWidget {
const MyTabbedPage({ Key key }) : super(key: key);
@override
_MyTabbedPageState createState() => _MyTabbedPageState();
}
class _MyTabbedPageState extends State<MyTabbedPage> with SingleTickerProviderStateMixin {
final List<Tab> myTabs = <Tab>[
Tab(text: 'Weddell'),
Tab(text: 'Harp'),
Tab(text: 'Grey')
];
//Iap iap = new Iap();
TabController _tabController;
StreamSubscription<List<PurchaseDetails>> _subscription;
@override
void initState() {
super.initState();
// iap.initState();
final Stream purchaseUpdates = InAppPurchaseConnection.instance.purchaseUpdatedStream;
_subscription = purchaseUpdates.listen((purchases) {
_handlePurchaseUpdates(purchases);
});
_tabController = TabController(vsync: this, length: myTabs.length);
}
@override
void dispose() {
_tabController.dispose();
_subscription.cancel();
//iap.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
bottomNavigationBar: BottomAppBar(
child: TabBar(
controller: _tabController,
tabs: myTabs,
labelColor: Color.fromRGBO(0, 0, 0, 1),
),
),
body: TabBarView(
controller: _tabController,
children: [
WeddellScreen(),
HarpScreen(),
GreyScreen()
]
),
);
}
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.green,
),
home: MyTabbedPage()
);
}
}