From d4d67247a297a69bf31b9c8115629494e5a5dcbf Mon Sep 17 00:00:00 2001 From: Jin857 Date: Mon, 25 Nov 2024 09:24:40 +0800 Subject: [PATCH] =?UTF-8?q?=20=E6=AE=8B=E4=BD=99=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/lib/home_page.dart | 25 +++++++++++++++---- ios/Classes/Page/FAQBaseAdPage.swift | 2 +- ios/Classes/Page/FAQSplashPage.swift | 5 ++-- ios/Classes/UnionAdSsgfPlugin.swift | 36 +++++++++++++++++++--------- pubspec.yaml | 10 +++----- 5 files changed, 52 insertions(+), 26 deletions(-) diff --git a/example/lib/home_page.dart b/example/lib/home_page.dart index 7809b9d..81679a3 100644 --- a/example/lib/home_page.dart +++ b/example/lib/home_page.dart @@ -10,8 +10,10 @@ import 'package:union_ad_ssgf/union_ad_ssgf.dart'; String _result = ''; class HomePage extends StatefulWidget { + const HomePage({super.key}); + @override - _HomePageState createState() => _HomePageState(); + State createState() => _HomePageState(); } class _HomePageState extends State { @@ -25,6 +27,7 @@ class _HomePageState extends State { @override Widget build(BuildContext context) { + TextStyle style = const TextStyle(fontSize: 12); return Scaffold( appBar: AppBar( title: const Text('Union AD plugin'), @@ -43,19 +46,28 @@ class _HomePageState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ ElevatedButton( - child: const Text('初始化'), + child: Text( + '初始化', + style: style, + ), onPressed: () {}, ), const SizedBox(height: 20), ElevatedButton( - child: const Text('请求跟踪授权'), + child: Text( + '请求跟踪授权', + style: style, + ), onPressed: () { requestIDFA(); }, ), const SizedBox(height: 20), ElevatedButton( - child: const Text('个性化广告'), + child: Text( + '个性化广告', + style: style, + ), onPressed: () { setPersonalizedAd(1); }, @@ -67,7 +79,10 @@ class _HomePageState extends State { children: [ ElevatedButton( child: const Text('开屏(Logo2)'), - onPressed: () {}, + onPressed: () { + showSplashAd(AdsConfig.logo2); + setState(() {}); + }, ), const SizedBox(height: 20), ElevatedButton( diff --git a/ios/Classes/Page/FAQBaseAdPage.swift b/ios/Classes/Page/FAQBaseAdPage.swift index e2f5d51..9bf968b 100644 --- a/ios/Classes/Page/FAQBaseAdPage.swift +++ b/ios/Classes/Page/FAQBaseAdPage.swift @@ -33,7 +33,7 @@ class FAQBaseAdPage: NSObject { else { return } - + self.posId = posId self.eventSink = eventSink diff --git a/ios/Classes/Page/FAQSplashPage.swift b/ios/Classes/Page/FAQSplashPage.swift index f51fa1b..e5c1c7e 100644 --- a/ios/Classes/Page/FAQSplashPage.swift +++ b/ios/Classes/Page/FAQSplashPage.swift @@ -20,9 +20,10 @@ class FAQSplashPage: FAQBaseAdPage, GDTSplashAdDelegate { let logo = arguments["logo"] as? String, let fetchDelay = arguments["fetchDelay"] as? CGFloat else { - return + } - + + print("---->>> logo: \(logo)") // logo 判断为空,则全屏展示 self.fullScreenAd = logo.isEmpty diff --git a/ios/Classes/UnionAdSsgfPlugin.swift b/ios/Classes/UnionAdSsgfPlugin.swift index c590e1f..b68fb22 100644 --- a/ios/Classes/UnionAdSsgfPlugin.swift +++ b/ios/Classes/UnionAdSsgfPlugin.swift @@ -23,6 +23,8 @@ public class UnionAdSsgfPlugin: NSObject, FlutterPlugin ,FlutterStreamHandler{ switch call.method { case "getPlatformVersion": getPlatformVersion(call: call, result: result) + case "requestIDFA": + requestIDFA(call: call, result: result) case "initAd": // 初始化 initAd(call:call, result: result); case "setPersonalizedState": // 设置广告个性化 @@ -68,6 +70,20 @@ public class UnionAdSsgfPlugin: NSObject, FlutterPlugin ,FlutterStreamHandler{ } } + + // 透明权限 + public func requestIDFA(call: FlutterMethodCall, result: @escaping FlutterResult) { + if #available(iOS 14, *) { + ATTrackingManager.requestTrackingAuthorization { status in + let requestResult = (status == .authorized) + print("requestIDFA: \(requestResult ? "YES" : "NO")") + result(requestResult) + } + } else { + result(true) + } + } + // 设置广告个性化 public func setPersonalizedState(call: FlutterMethodCall, result: @escaping FlutterResult) { if let arguments = call.arguments as? [String: Any], @@ -86,6 +102,7 @@ public class UnionAdSsgfPlugin: NSObject, FlutterPlugin ,FlutterStreamHandler{ // 初始化 FAQSplashPage 实例 self.splashAd = FAQSplashPage() if(self.sink != nil){ + print("--------------->>>>> showSplashAd"); self.splashAd?.showAd(call: call, eventSink: self.sink!) result(true) }else{ @@ -107,22 +124,19 @@ public class UnionAdSsgfPlugin: NSObject, FlutterPlugin ,FlutterStreamHandler{ // 设置事件接收器 public func onListen(withArguments arguments: Any?, eventSink events: @escaping FlutterEventSink) -> FlutterError? { - print("onListen ------------------>>>>>>") - self.sink = events - return nil - } + self.sink = events + return nil + } // 清空事件接收器 public func onCancel(withArguments arguments: Any?) -> FlutterError? { - print("onCancel ------------------>>>>>>") - self.sink = nil; - return nil; - } + self.sink = nil; + return nil; + } // 添加事件 private func addEvent(_ event: NSObject) { - print("addEvent ------------------>>>>>>") - self.sink?(event) - } + self.sink?(event) + } } diff --git a/pubspec.yaml b/pubspec.yaml index 112fe73..00bb369 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,12 +1,10 @@ name: union_ad_ssgf description: 【持续更新】 致力于构建优质的 Flutter 广告插件,这是其中一款基于「腾讯广告、广点通、优量汇」的广告插件 - version: 0.0.1 -homepage: environment: sdk: ">=2.12.0 <4.0.0" - flutter: ">=2.5.0" + flutter: ">=3.0.0" dependencies: flutter: @@ -14,13 +12,12 @@ dependencies: flutter_web_plugins: sdk: flutter - web: ^0.5.1 - plugin_platform_interface: ^2.0.2 - dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^3.0.0 + web: ^0.5.1 + plugin_platform_interface: ^2.0.2 flutter: plugin: @@ -39,4 +36,3 @@ flutter: web: pluginClass: UnionAdSsgfWeb fileName: union_ad_ssgf_web.dart -