提交 282f3f06 authored 作者: yueweilu's avatar yueweilu

1、开屏广告显示

2、广告跳转界面
上级 663471f9
...@@ -3,12 +3,15 @@ library ad; ...@@ -3,12 +3,15 @@ library ad;
import 'dart:async'; import 'dart:async';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_book/widgets/index.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import '../../models/index.dart';
import '../../routes/index.dart'; import '../../routes/index.dart';
import '../course/index.dart';
......
part of ad; part of ad;
class AdPage extends StatefulWidget { class AdPage extends StatefulWidget {
const AdPage({Key? key}) : super(key: key); final List<AdModel> ads;
const AdPage({
Key? key,
required this.ads
}) : super(key: key);
@override @override
State<AdPage> createState() => _AdPageState(); State<AdPage> createState() => _AdPageState();
...@@ -16,8 +20,14 @@ class _AdPageState extends State<AdPage> { ...@@ -16,8 +20,14 @@ class _AdPageState extends State<AdPage> {
body: Stack( body: Stack(
fit: StackFit.expand, fit: StackFit.expand,
children: [ children: [
Container( GestureDetector(
color: Colors.green, onTap: (){
context.pushNamed(Routes.adDetail,extra: widget.ads.first);
},
child: Container(
color: Colors.green,
child: CustomImage.network(url: widget.ads.first.pic??''),
),
), ),
Positioned( Positioned(
top: 40.w, top: 40.w,
......
library ad_detail;
import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import '../../models/index.dart';
part 'view.dart';
\ No newline at end of file
part of ad_detail;
class AdDetailPage extends StatefulWidget {
final AdModel adModel;
const AdDetailPage({
Key? key,
required this.adModel
}) : super(key: key);
@override
State<AdDetailPage> createState() => _AdDetailPageState();
}
class _AdDetailPageState extends State<AdDetailPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('用户协议'),
),
body: InAppWebView(
initialUrlRequest: URLRequest(
url: Uri.parse(widget.adModel.url??''),
),
)
);
}
}
...@@ -71,7 +71,12 @@ class _CoursePageState extends State<CoursePage> { ...@@ -71,7 +71,12 @@ class _CoursePageState extends State<CoursePage> {
Container( Container(
color: Colors.transparent, color: Colors.transparent,
padding: EdgeInsets.symmetric(horizontal: 10.w), padding: EdgeInsets.symmetric(horizontal: 10.w),
child: BuildBanner(items:controller.ads), child: BuildBanner(
items:controller.ads,
onTap:(adModel){
context.pushNamed(Routes.adDetail,extra: adModel);
} ,
),
):const SizedBox(), ):const SizedBox(),
Expanded( Expanded(
child: CustomPullScrollView( child: CustomPullScrollView(
......
...@@ -2,9 +2,11 @@ part of course; ...@@ -2,9 +2,11 @@ part of course;
class BuildBanner extends StatelessWidget { class BuildBanner extends StatelessWidget {
final List <AdModel>items; final List <AdModel>items;
final void Function(AdModel adModel)? onTap;
const BuildBanner({ const BuildBanner({
Key? key, Key? key,
this.items = const [], this.items = const [],
this.onTap
}) : super(key:key); }) : super(key:key);
@override @override
...@@ -39,9 +41,14 @@ class BuildBanner extends StatelessWidget { ...@@ -39,9 +41,14 @@ class BuildBanner extends StatelessWidget {
), ),
//CustomImage.network(item.pic??'',) //CustomImage.network(item.pic??'',)
child: ClipRRect( child: GestureDetector(
borderRadius: BorderRadius.circular(8.w), onTap: (){
child: CustomImage.network(url: item.pic??'') if (onTap !=null) onTap!(item);
},
child: ClipRRect(
borderRadius: BorderRadius.circular(8.w),
child: CustomImage.network(url: item.pic??'')
),
), ),
// child: CustomImage.asset( // child: CustomImage.asset(
// url: 'assets/images/banner.png', // url: 'assets/images/banner.png',
......
...@@ -85,7 +85,12 @@ class _LibraryPageState extends State<LibraryPage> { ...@@ -85,7 +85,12 @@ class _LibraryPageState extends State<LibraryPage> {
controller.ads.isNotEmpty?Container( controller.ads.isNotEmpty?Container(
color: Colors.transparent, color: Colors.transparent,
padding: EdgeInsets.symmetric(horizontal: 10.w), padding: EdgeInsets.symmetric(horizontal: 10.w),
child: BuildBanner(items:controller.ads) child: BuildBanner(
items:controller.ads,
onTap:(adModel){
context.pushNamed(Routes.adDetail,extra: adModel);
} ,
)
):const SizedBox(), ):const SizedBox(),
LibraryContentPage(controller: controller,) LibraryContentPage(controller: controller,)
......
...@@ -99,7 +99,12 @@ class _MinePageState extends State<MinePage> { ...@@ -99,7 +99,12 @@ class _MinePageState extends State<MinePage> {
Container( Container(
color: Colors.transparent, color: Colors.transparent,
padding: EdgeInsets.symmetric(horizontal: 10.w), padding: EdgeInsets.symmetric(horizontal: 10.w),
child: BuildBanner(items:controller.ads), child: BuildBanner(
items:controller.ads,
onTap:(adModel){
context.pushNamed(Routes.adDetail,extra: adModel);
} ,
),
):const SizedBox(), ):const SizedBox(),
Gaps.vGaps5, Gaps.vGaps5,
BuildAccount(items:controller.accounts,onTap: (ReadModel model) async{ BuildAccount(items:controller.accounts,onTap: (ReadModel model) async{
......
...@@ -32,8 +32,12 @@ class _SplashPageState extends State<SplashPage> { ...@@ -32,8 +32,12 @@ class _SplashPageState extends State<SplashPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
extendBodyBehindAppBar: true, extendBodyBehindAppBar: true,
appBar: AppBar(), // appBar: AppBar(),
body: Image.asset('assets/images/splash.png',fit: BoxFit.cover,) body: Container(
height: double.infinity,
width: double.infinity,
child: Image.asset('assets/images/splash.png',fit: BoxFit.cover,),
)
// const Column( // const Column(
// crossAxisAlignment: CrossAxisAlignment.stretch, // crossAxisAlignment: CrossAxisAlignment.stretch,
// mainAxisAlignment: MainAxisAlignment.center, // mainAxisAlignment: MainAxisAlignment.center,
......
...@@ -43,6 +43,7 @@ import 'package:flutter_book/pages/version_des/index.dart'; ...@@ -43,6 +43,7 @@ import 'package:flutter_book/pages/version_des/index.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import '../models/index.dart'; import '../models/index.dart';
import '../pages/ad_detail/index.dart';
import '../pages/bai_ke/index.dart'; import '../pages/bai_ke/index.dart';
import '../pages/read_web/index.dart'; import '../pages/read_web/index.dart';
import '../pages/user_edit_note/index.dart'; import '../pages/user_edit_note/index.dart';
......
...@@ -7,6 +7,7 @@ abstract class Routes { ...@@ -7,6 +7,7 @@ abstract class Routes {
static const splash = 'splash'; static const splash = 'splash';
static const main = 'main'; static const main = 'main';
static const ad = 'ad'; static const ad = 'ad';
static const adDetail = 'ad_detail';
static const web = 'read_web'; static const web = 'read_web';
...@@ -118,8 +119,8 @@ abstract class Routes { ...@@ -118,8 +119,8 @@ abstract class Routes {
static final GoRouter config = GoRouter( static final GoRouter config = GoRouter(
// initialLocation: '/$splash', initialLocation: '/$splash',
initialLocation: '/', // initialLocation: '/',
observers: [observer], observers: [observer],
// redirect: _RouteRedirect.auth, // redirect: _RouteRedirect.auth,
routes: [ routes: [
...@@ -147,7 +148,7 @@ abstract class Routes { ...@@ -147,7 +148,7 @@ abstract class Routes {
pageBuilder: (context, state) =>CupertinoPage( pageBuilder: (context, state) =>CupertinoPage(
name: state.uri.toString(), name: state.uri.toString(),
key: state.pageKey, key: state.pageKey,
child: const AdPage() child: AdPage(ads: state.extra as List<AdModel>,)
) )
), ),
/// 登录模块 /// 登录模块
...@@ -574,6 +575,15 @@ abstract class Routes { ...@@ -574,6 +575,15 @@ abstract class Routes {
child: const OrderSearchPage(), child: const OrderSearchPage(),
) )
), ),
GoRoute( // 订单搜索
path: '/$adDetail',
name: adDetail,
pageBuilder: (context, state) =>CupertinoPage(
name: state.uri.toString(),
key: state.pageKey,
child: AdDetailPage(adModel: state.extra as AdModel,),
)
),
] ]
); );
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论