Integration
Intialize and import NotifyVisitors SDK.
Import the NotifyVisitors SDK in your project
Download the sdk zip file from below which has some files library (.a file), header file (.h file), plist file (.plist file) and some images (.png file), from the sdk download link and include them into your project. Simply drag and include them in your project.
1. Configure your info.plist
Open info.plist of your project as source code (right click on info.plist and click on Open as >> Source code) and add the following code in it.
Note:
In below example Dummy Brand ID and Secret keys shown. Kindly login to your account to see your credentials.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleURLSchemes</key>
<array>
<string>YOUR_URL_SCHEME</string>
</array>
</dict>
</array>
<key>nvBrandID</key>
<integer>YOUR_BRANDID_COMES_HERE</integer>
<key>nvSecretKey</key>
<string>YOUR_SECRET_KEY_COMES_HERE</string>
<key>nvPushCategory</key>
<string>nvpush</string>
<key>nvViewAutoRedirection</key>
<true/> <!--OR--> <!-- <false/>-->
If you are using our older iOS SDK upto version 5.3.3 or below then add the following into your info.plist file if you are using our latest iOS SDK(version 6.0.1 or above) then skip this step.
<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you</string>
OR
You can simply open the info.plist and add the keys which works as same as above for this.
1.1 Add a new row by going to the menu and clicking Editor > Add Item. Setup a NSAppTransportSecurity
as a Dictionary
.
1.2 Added a Subkey called NSAllowsArbitraryLoads
as Boolean
and set its value to YES
as like following image.
1.3 Add a new row again and set up a URL Types item by adding a new item. Expand the URL Types key, expand Item 0
, and add a new item, URL schemes. Fill in “appScheme” for Item 0 of URL schemes and your company identifier for the URL Identifier. Your file should resemble the image below when done.
1.4 Add a new row again and set up a nvBrandID
as Number
and fill this field with your BRANDID
1.5 Add a new row again and set up a nvSecretKey
as String and fill this field with your SECRET KEY
{8A991DED60F2186660EF8A337C30BDDE}
1.6 Add a new row again and set up a nvPushCategory
as String
and set it’s value nvpush
.
1.7 Add a new row again and set up a key nvViewAutoRedirection
as Boolean
set it YES
to enable auto redirection of your app’s ViewControllers
from sdk or set it NO
to handle redirections by your app.
1.8 If you are using Notifyvisitors iOS SDK version 5.3.3 or below then follow the step (a) given below if you are using our latest version iOS SDK (version 6.0.1 or above) then we have removed using IDFA from our SDK so you don’t need to follow the below step just skip this step.
- Notifyvisitors iOS SDK (upto version 5.3.3. Or below) is using IDFA so as per Apple’s new guideline after iOS14 release to display the App Tracking Transparency authorization request for accessing the IDFA, add a new row again and set up a key
NSUserTrackingUsageDescription
key with a custom message describing your usage. Here is an example description text: “This identifier will be used to deliver personalized ads to you.
”
Note
If you are updating our iOS SDK from any older version (v~5.3.3 or below) sdk to our latest version of SDK (v~6.0.1 or above version) and if your info.plist is still having key NSUserTrackingUsageDescription then check if your app or any other third party library in your app is not using IDFA then REMOVE this key from your App’s info.plist.
1.9 Goto Signing & Capabilities
Tab and if “Background Modes
” is not already added then click on the + symbol on the left corner of this tab and add Background Modes
make sure to select 2 checkboxes. If it is already added then make sure to select 2 checkboxes (i.e. Background fetch, Remote notifications).
In the Signing & Capabilities
Tab and click on + symbol on the left corner of this tab and add Push Notifications
and if you are upgraded Xcode
and Push Notifications
was already added in previous version of Xcode
then remove Push Notifications
and add it again to configure push notification properly for the upgraded devices.
In the Signing & Capabilities
Tab if “App Groups
” is not already added then click on + symbol on the left corner of this tab and add App Groups
and click on + sign and add a new app group give the group name as group.nv.{Your App Bundle Identifier
}.
Example : if Your App’s Bundle Identifier is com.example.myapp
then the App Group must be named as group.nv.com.example.myapp
make sure this newly created app group must be checked (Turned on)
Import header file
Objective-C
Include the header file in`.m` file in which sdk function is to be accessed.
#import "notifyvisitors.h"
Swift
Add a new header file and name it with the following format. YOUR_PROJECT_NAME-Bridging-Header.h Example if your project name is test. Then the header file name will be test-Bridging-Header.h. Now add the following import statement in YOUR_PROJECT_NAME-Bridging-Header.h for accessing Native SDK Classes.
#import "notifyvisitors.h"
Make sure that the path of bridge-header.h file is included in build settings under “Swift compiler-code generation” as:
Objective C bridging header: YOUR_PROJECT_NAME/YOUR_PROJECT_NAME-Bridging-Header.h
Initialize the sdk in application didFinishLaunchingWithOptions
function.
- nvMode: Define a NSString nvMode and set its value “debug” or “live” based on preprocessor if condition so that sdk knows the app is running in debugging mode or downloaded from AppStore (i.e. live mode) as follows.
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {
var nvMode:String? = nil
#if DEBUG
nvMode = "debug"
#else
nvMode = "live"
#endif
notifyvisitors.initialize(nvMode)
return true
}
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
NSString *nvMode = nil;
#if DEBUG
nvMode = @"debug";
#else
nvMode = @"live";
#endif
[notifyvisitors Initialize:nvMode];
return YES
}
- Add the following method in
applicationDidEnterBackground
in yourAppDelegate
file.
notifyvisitors.applicationDidEnterBackground(application)
[notifyvisitors applicationDidEnterBackground: application];
- Add the following method in application
applicationDidBecomeActive
in yourAppDelegate
file.
notifyvisitors.applicationDidBecomeActive(application)
[notifyvisitors applicationDidBecomeActive: application];
- Add the following method in
applicationWillEnterForeground
in your AppDelegate file.
notifyvisitors.applicationWillEnterForeground(application)
[notifyvisitors applicationWillEnterForeground];
- Add the following method in
applicationWillTerminate
in yourAppDelegate
file.
notifyvisitors.applicationWillTerminate()
[notifyvisitors applicationWillTerminate];
- Geo-fencing: To handle the geofencing notifications add the following Code to receive notification when geofencing events trigger.
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *) notification {
[notifyvisitors NotifyVisitorsGeofencingReceivedNotificationWithApplication:application window:self.window didReceiveGeofencingNotification:notification];
}
- Deep Linking: Use the following method in your
AppDelegate OpenURL
method that will check the deep linking and open your app from URL Scheme.
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
notifyvisitors.openUrl(with: app, url: url)
return true
}
-(BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation {
[notifyvisitors OpenUrlWithApplication:application Url:url];
return YES;
}
Updated 18 days ago