Skip to content

Commit fd9f03e

Browse files
Merge pull request #129 from qonversion/feature/appleSearchAds
Add setAppleSearchAdsAttributionEnabled() method
2 parents 4ad6a4a + 97706c5 commit fd9f03e

File tree

7 files changed

+28
-3
lines changed

7 files changed

+28
-3
lines changed

example/android/app/src/main/AndroidManifest.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
1111
<uses-permission android:name="com.android.vending.BILLING"/>
1212
<application
13-
android:name="io.flutter.app.FlutterApplication"
1413
android:label="com.qonversion.sample"
1514
android:icon="@mipmap/ic_launcher">
1615
<activity

example/lib/home.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ class _HomeViewState extends State<HomeView> {
111111
isObserveMode: false,
112112
);
113113

114+
Qonversion.setAppleSearchAdsAttributionEnabled(true);
115+
114116
setState(() {});
115117
}
116118

ios/Classes/SwiftQonversionFlutterSdkPlugin.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ public class SwiftQonversionFlutterSdkPlugin: NSObject, FlutterPlugin {
102102

103103
case "identify":
104104
return identify(args["userId"] as? String, result)
105+
106+
case "setAppleSearchAdsAttributionEnabled":
107+
let enable = args["enable"] as? Bool ?? false
108+
return setAppleSearchAdsAttributionEnabled(enable, result)
105109

106110
default:
107111
return result(FlutterMethodNotImplemented)
@@ -336,6 +340,13 @@ public class SwiftQonversionFlutterSdkPlugin: NSObject, FlutterPlugin {
336340

337341
result(nil)
338342
}
343+
344+
private func setAppleSearchAdsAttributionEnabled(_ enable: Bool, _ result: @escaping FlutterResult) {
345+
if enable {
346+
Qonversion.setAppleSearchAdsAttributionEnabled(enable)
347+
}
348+
result(nil)
349+
}
339350
}
340351

341352
extension SwiftQonversionFlutterSdkPlugin: Qonversion.PurchasesDelegate {

ios/qonversion_flutter.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
1616
s.source_files = 'Classes/**/*'
1717
s.dependency 'Flutter'
1818
s.platform = :ios, '9.0'
19-
s.dependency 'Qonversion', '2.18.1'
19+
s.dependency 'Qonversion', '2.18.3'
2020

2121
# Flutter.framework does not contain a i386 slice. Only x86_64 simulators are supported.
2222
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS[sdk=iphonesimulator*]' => 'x86_64' }

lib/src/constants.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class Constants {
1616
static const kProperty = 'property';
1717
static const kValue = 'value';
1818
static const kProrationMode = 'proration_mode';
19+
static const kEnableAppleSearchAdsAttribution = 'enable';
1920

2021
// MethodChannel methods names
2122
static const mLaunch = 'launch';
@@ -38,6 +39,8 @@ class Constants {
3839
static const mStoreSdkInfo = 'storeSdkInfo';
3940
static const mIdentify = 'identify';
4041
static const mLogout = 'logout';
42+
static const mSetAppleSearchAdsAttributionEnabled =
43+
'setAppleSearchAdsAttributionEnabled';
4144

4245
// Keys for NSUserDefaults on iOS and SharedPreferences on Android
4346
static const keyPrefix = 'com.qonversion.keys';

lib/src/qonversion.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,16 @@ class Qonversion {
296296
return QMapper.eligibilityFromJson(eligibilitiesString);
297297
}
298298

299+
/// Enable attribution collection from Apple Search Ads. NO by default.
300+
static Future<void> setAppleSearchAdsAttributionEnabled(bool enable) async {
301+
if (!Platform.isIOS) {
302+
return null;
303+
}
304+
305+
return _channel.invokeMethod(Constants.mSetAppleSearchAdsAttributionEnabled,
306+
{Constants.kEnableAppleSearchAdsAttribution: enable});
307+
}
308+
299309
// Private methods
300310
static Future<void> _storeSdkInfo() =>
301311
_channel.invokeMethod(Constants.mStoreSdkInfo, {

macos/qonversion_flutter.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
1616
s.source_files = 'Classes/**/*'
1717
s.dependency 'FlutterMacOS'
1818
s.platform = :osx, '10.12'
19-
s.dependency 'Qonversion', '2.18.1'
19+
s.dependency 'Qonversion', '2.18.3'
2020
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
2121
s.swift_version = '5.0'
2222
s.static_framework = true

0 commit comments

Comments
 (0)