सामग्री पर जाएं

iOS SDK को कस्टमाइज़ करना

इंटीग्रेशन

Anchor link to

डीप लिंकिंग

Anchor link to

अपनी Info.plist फ़ाइल में URL Identifier और URL Scheme के साथ URL types ऐरे जोड़ें।
नीचे दिए गए उदाहरण में URL Scheme com.pushwoosh है और URL Identifier promotion है।

Info.plist में URL प्रकार

अपनी ऐप डेलीगेट फ़ाइल में (आमतौर पर iOS 12 और उससे नीचे के लिए AppDelegate.m, या iOS 13 और उससे ऊपर के लिए SceneDelegate.m), नीचे दिए गए उदाहरण के अनुसार उपयुक्त openURL डेलीगेट फ़ंक्शन जोड़ें। उदाहरण सही पेज की जाँच करता है, URL से “id” मान को पार्स करता है, और प्रतिक्रिया में PromoPageViewController खोलता है।

AppDelegate.swift

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
let components = URLComponents(url: url, resolvingAgainstBaseURL: false)
let page = components?.host
var promotionId: String?
if page == "promotion" {
return
}
let items = components?.queryItems ?? []
for item in items {
if item.name == "id" {
promotionId = item.value
}
}
//show PromoPageViewController
}

SceneDelegate.swift

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
guard let urlContext = URLContexts.first else { return }
let components = URLComponents(url: urlContext.url, resolvingAgainstBaseURL: false)
let page = components?.host
var promotionId: String?
guard page == "promotion" else {
return
}
let items = components?.queryItems ?? []
for item in items {
if item.name == "id" {
promotionId = item.value
}
}
//show PromoPageViewController
}

इन-ऐप खरीदारी ट्रैकिंग

Anchor link to

डिफ़ॉल्ट रूप से, इन-ऐप खरीदारी की ट्रैकिंग अक्षम होती है। यदि आप कस्टमर जर्नी को कॉन्फ़िगर करते समय इन-ऐप खरीदारी को ट्रैक करना चाहते हैं, तो info.plist फ़ाइल में Pushwoosh_PURCHASE_TRACKING_ENABLED फ़्लैग को true पर सेट करें। आप उपलब्ध फ़्लैग की सूची तालिका में पा सकते हैं।

यदि आप इन-ऐप खरीदारी को मैन्युअल रूप से ट्रैक करना चाहते हैं, तो आप नीचे दिए गए कोड का उपयोग कर सकते हैं।

paymentQueue:updatedTransactions: delegate मेथड में PushManager का sendSKPaymentTransactions मेथड कॉल करें।

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
// In-Apps Tracking Pushwoosh code here
Pushwoosh.sharedInstance().sendSKPaymentTransactions(transactions)
// the rest of the code, consume transactions, etc
}
InAppTrackingViewController.swift

जियोज़ोन पुश नोटिफिकेशन्स

Anchor link to

जियोज़ोन पुश नोटिफिकेशन्स एक अलग फ्रेमवर्क PushwooshGeozones में एनकैप्सुलेटेड हैं।

  1. अपने प्रोजेक्ट में PushwooshGeozones.framework जोड़ें

डिपेंडेंसी मैनेजर का उपयोग करके अपने प्रोजेक्ट में PushwooshGeozones.framework जोड़ने के लिए, अपनी podfile या cartfile में निम्नलिखित लाइनें डालें:

pod 'PushwooshXCFramework/Geozones'

वैकल्पिक रूप से, आप बस फ्रेमवर्क को अपने प्रोजेक्ट के Build Phases में Link Binaries With Libraries में ड्रैग और ड्रॉप कर सकते हैं।

  1. अपनी Info.plist में निम्नलिखित कीज़ जोड़ें:
  • NSLocationWhenInUseUsageDescription(आवश्यक) ऐप के लिए केवल फोरग्राउंड में चलते समय जियोज़ोन को ट्रैक करने के लिए।
  • NSLocationAlwaysAndWhenInUseUsageDescription(आवश्यक) ऐप के लिए फोरग्राउंड और बैकग्राउंड दोनों में जियोज़ोन को ट्रैक करने और अनुमति अनुरोध डायलॉग पॉप-अप दिखाने के लिए।
  • NSLocationAlwaysUsageDescription(वैकल्पिक) ऐप के लिए हर समय जियोज़ोन को ट्रैक करने के लिए; इसका उपयोग तब किया जाना चाहिए जब आपका ऐप iOS 10 और पुराने संस्करणों को लक्षित करता हो।
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>for app to track Geozones in both conditions and to show a permission request dialog</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>for app to track Geozones only while running in the foreground</string>

  1. फ्रेमवर्क इम्पोर्ट करें
import PushwooshGeozones
  1. जियोज़ोन ट्रैकिंग शुरू करें
PWGeozonesManager.shared()?.startLocationTracking()

GitHub संदर्भ

उदाहरण
Anchor link to
override func viewDidLoad() {
super.viewDidLoad()
// Start Geozones tracking when needed
PWGeozonesManager.shared().startLocationTracking()
}

एक रिच मीडिया क्यू बनाना

Anchor link to

यदि एक साथ कई रिच मीडिया पेज प्रदर्शित करने हों (उदाहरण के लिए, दो या दो से अधिक इन-ऐप्स के लिए ट्रिगर इवेंट एक ही समय में होते हैं, या एक रिच मीडिया पेज पहले से ही प्रदर्शित हो रहा है जब एक अलग ट्रिगर इवेंट होता है), तो आप रिच मीडिया पेजों के प्रदर्शन के लिए एक क्यू सेट कर सकते हैं। एक क्यू बनाने के लिए, नीचे वर्णित चरणों का पालन करें।

  1. एक क्लास बनाएं जो PWRichMediaPresentingDelegate को लागू करती है:
@interface ChainedRichMediaPresentingDelegate () <PWRichMediaPresentingDelegate>
@property (nonatomic) NSMutableArray *queue;
@property (nonatomic) BOOL inAppIsPresenting;
@end
@implementation ChainedRichMediaPresentingDelegate
- (instancetype)init {
self = [super init];
if (self) {
_queue = [NSMutableArray new];
}
return self;
}
- (BOOL)richMediaManager:(PWRichMediaManager *)richMediaManager shouldPresentRichMedia:(PWRichMedia *)richMedia {
[_queue addObject:richMedia];
return !_inAppIsPresenting;
}
- (void)richMediaManager:(PWRichMediaManager *)richMediaManager didPresentRichMedia:(PWRichMedia *)richMedia {
_inAppIsPresenting = YES;
}
- (void)richMediaManager:(PWRichMediaManager *)richMediaManager didCloseRichMedia:(PWRichMedia *)richMedia {
_inAppIsPresenting = NO;
[_queue removeObject:richMedia];
if (_queue.count) {
[[PWRichMediaManager sharedManager] presentRichMedia:_queue.firstObject];
}
}
- (void)richMediaManager:(PWRichMediaManager *)richMediaManager presentingDidFailForRichMedia:(PWRichMedia *)richMedia withError:(NSError *)error {
[self richMediaManager:richMediaManager didCloseRichMedia:richMedia];
}
@end

2. डेलीगेट सेट करें:

[PWRichMediaManager sharedManager].delegate = [ChainedRichMediaPresentingDelegate new];

फोर्स टच के साथ रिच नोटिफिकेशन में भेजे गए वीडियो को ऑटोप्ले करना

Anchor link to

एक रिच नोटिफिकेशन अटैचमेंट के रूप में भेजे गए वीडियो को बिना किसी उपयोगकर्ता सहभागिता के नोटिफिकेशन के विस्तार पर ऑटोप्ले करने के लिए, नीचे दिए गए चरणों का पालन करें:

  1. अपने प्रोजेक्ट में नोटिफिकेशन कंटेंट एक्सटेंशन जोड़ें:
  • Xcode में, File > New > Target चुनें।
  • Notification Content Extension चुनें।
  • इसे एक नाम दें और सेटअप पूरा करें।
नोटिफिकेशन कंटेंट एक्सटेंशन - iOS रिच पुश नोटिफिकेशन

यदि “Activate scheme” संदेश के साथ संकेत दिया जाता है, तो Cancel चुनें।

नोटिफिकेशन कंटेंट स्कीम को सक्रिय करें
  1. कंटेंट एक्सटेंशन में प्रॉपर्टीज़ और मेथड्स को निम्नानुसार समायोजित करें:
import UIKit
import UserNotifications
import UserNotificationsUI
import AVKit
class NotificationViewController: UIViewController, UNNotificationContentExtension {
var playerController: AVPlayerViewController!
@IBOutlet weak var playerBackgroundView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any required interface initialization here.
}
func didReceive(_ notification: UNNotification) {
let attachment = notification.request.content.attachments.first
playerController = AVPlayerViewController()
// Set height programmatically
// preferredContentSize.height = 250
if let url = attachment?.url {
setupVideoPlayer(url: url)
} else {
print("No valid URL...")
}
}
private func setupVideoPlayer(url: URL) {
guard let playerController = self.playerController else { return }
let player = AVPlayer(url: url)
playerController.player = player
playerController.view.frame = self.playerBackgroundView.bounds
playerBackgroundView.addSubview(playerController.view)
addChild(playerController)
playerController.didMove(toParent: self)
player.play()
}
  1. MainInterface.storyboard में एक UIView शामिल करें:
MainInterface.storyboard में UIView
  1. playerBackgroundView IBOutlet को आपके द्वारा अभी जोड़े गए UIView से लिंक करें:
playerBackgroundView IBOutlet को UIView से लिंक करें
  1. info.plist फ़ाइल को निम्नलिखित प्रविष्टि के साथ अपडेट करें:
UNNotificationExtensionUserInteractionEnabled = true
UNNotificationExtensionUserInteractionEnabled = true

अपने नोटिफिकेशन में वीडियो संलग्न करने के लिए, कंट्रोल पैनल में मीडिया अटैचमेंट फ़ील्ड में वीडियो का URL इनपुट करें:

Pushwoosh कंट्रोल पैनल में मीडिया अटैचमेंट फ़ील्ड में वीडियो का URL

API /createMessage अनुरोध के माध्यम से एक नोटिफिकेशन भेजते समय, URL को “ios_attachment” पैरामीटर में शामिल करें और सुनिश्चित करें कि “mutable-content” फ़्लैग `1` पर सेट है।

कस्टम पुश साउंड

Anchor link to

पुश नोटिफिकेशन प्राप्त होने पर एक कस्टम साउंड चलाने के लिए, पहले ऑडियो फ़ाइल को अपने प्रोजेक्ट के रूट फ़ोल्डर में रखें।

प्रोजेक्ट में ऑडियो फ़ाइल

फिर, पुश पैरामीटर्स में साउंड फ़ाइल का नाम निर्दिष्ट करें – अपने संदेश की iOS-विशिष्ट सेटिंग्स के साउंड फ़ील्ड को भरें या createMessage API अनुरोध के “ios_sound” पैरामीटर के मान के रूप में फ़ाइल का नाम निर्दिष्ट करें।

कस्टम iOS साउंड के लिए ऑडियो फ़ाइल निम्नलिखित प्रारूपों में से एक में होनी चाहिए: .aif, .caf, .wavफ़ाइल के नाम में प्रारूप निर्दिष्ट करना सुनिश्चित करें; अन्यथा, इसे Pushwoosh iOS SDK द्वारा अनदेखा कर दिया जाएगा।

iOS प्रोविजनल पुश

Anchor link to

यह कैसे काम करता है

Anchor link to

प्रोविजनल पुश नोटिफिकेशन्स उपयोगकर्ता के नोटिफिकेशन सेंटर में चुपचाप दिखाई देते हैं लेकिन लॉक स्क्रीन पर नहीं। इस प्रकार के पुश को उपयोगकर्ता द्वारा स्पष्ट रूप से अनुमति देने की आवश्यकता नहीं होती है: आप उन्हें भेजना शुरू कर सकते हैं जैसे ही कोई उपयोगकर्ता आपके ऐप को इंस्टॉल और लॉन्च करता है।

हालांकि, उपयोगकर्ता अभी भी आपके प्रमुख पुश नोटिफिकेशन्स की सदस्यता ले सकते हैं: प्रोविजनल पुश खोलने पर, उनके पास अपने अनुभव को चुनने के लिए दो विकल्प होते हैं - बिना अलर्ट और साउंड के नोटिफिकेशन सेंटर में पुश रखना या आपको प्रमुख रूप से पुश भेजने की अनुमति देना ताकि वे लॉक स्क्रीन पर दिखाई दें।

प्रोविजनल पुश को उपयोगकर्ताओं को यह सूचित निर्णय लेने देने के लिए डिज़ाइन किया गया है कि क्या वे आपके ऐप से नोटिफिकेशन्स प्राप्त करना चाहेंगे। चूंकि APN नेटिव सब्सक्रिप्शन अनुरोध उपयोगकर्ताओं को केवल एक बार दिखाया जाता है और बाद में सब्सक्राइब करने के लिए, उन्हें अपने फोन की सिस्टम सेटिंग्स में जाना चाहिए, और कुछ उपयोगकर्ता सब्सक्राइब नहीं कर सकते हैं क्योंकि वे इस बात से अवगत नहीं हैं कि वे आपके पुश से क्या मूल्य प्राप्त करते हैं। प्रोविजनल पुश उपयोगकर्ताओं को यह समझ देते हैं: वे देख सकते हैं कि आप पुश नोटिफिकेशन्स में कौन सी सामग्री वितरित करते हैं और यह तय कर सकते हैं कि क्या उन्हें इस सामग्री के बारे में प्रमुख रूप से सूचित करने की आवश्यकता है।

कैसे लागू करें

Anchor link to

1. गाइड का पालन करके Pushwoosh iOS SDK को इंटीग्रेट करें।

2. registerForPushNotifications() मेथड को कॉल करने से पहले अपने प्रोजेक्ट के AppDelegate में निम्नलिखित स्ट्रिंग जोड़ें:

if #available(iOS 12.0, *) {
Pushwoosh.sharedInstance().additionalAuthorizationOptions = UNAuthorizationOptions.provisional
}

बस इतना ही! ऐप इंस्टॉल करने के बाद ऐप उपयोगकर्ताओं को सीधे उनके नोटिफिकेशन सेंटर में संदेश मिलेंगे।

अपनी प्रतिक्रिया हमारे साथ साझा करें

Anchor link to

आपकी प्रतिक्रिया हमें एक बेहतर अनुभव बनाने में मदद करती है, इसलिए यदि आपको SDK इंटीग्रेशन प्रक्रिया के दौरान कोई समस्या आती है तो हम आपसे सुनना पसंद करेंगे। यदि आपको कोई कठिनाई आती है, तो कृपया इस फॉर्म के माध्यम से अपने विचार हमारे साथ साझा करने में संकोच न करें।