বিষয়বস্তুতে যান

iOS মোডাল রিচ মিডিয়া

Pushwoosh SDK সংস্করণ 6.7.5 থেকে, আপনার মোডাল রিচ মিডিয়া পাঠানোর ক্ষমতা রয়েছে।

আমরা নতুন মোডাল রিচ মিডিয়া চালু করছি, যা কাস্টমাইজ করা যায়। নতুন মোডাল রিচ মিডিয়া স্ক্রিন সম্পূর্ণভাবে ব্লক করে না এবং স্ক্রিনের বিভিন্ন অংশে (উপরে, নীচে এবং কেন্দ্রে) অবস্থান করানো যেতে পারে।

রিচ মিডিয়া পেজ সম্পর্কে আরও তথ্যের জন্য, অনুগ্রহ করে আমাদের গাইড দেখুন।

কনফিগারেশন

Anchor link to
//সাইলেন্ট পুশ নোটিফিকেশনের জন্য
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
Pushwoosh.configure.handlePushReceived(userInfo)
completionHandler(.noData)
}

বিকল্প ১: Info.plist কনফিগারেশন

Anchor link to

মোডাল রিচ মিডিয়া প্রদর্শন সক্রিয় করতে, আপনার info.plist-এ Pushwoosh_RICH_MEDIA_STYLE প্যারামিটার সেট করুন এবং এর মান MODAL_RICH_MEDIA নির্ধারণ করুন।

Info.plist:

<key>Pushwoosh_RICH_MEDIA_STYLE</key>
<string>MODAL_RICH_MEDIA</string>

বিকল্প ২: প্রোগ্রাম্যাটিক কনফিগারেশন (SDK 7.0.14+)

Anchor link to

আপনি আপনার AppDelegate-এ প্রোগ্রাম্যাটিকভাবে রিচ মিডিয়া উপস্থাপনা শৈলী কনফিগার করতে পারেন:

func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// মোডাল উপস্থাপনা শৈলী সেট করুন
Pushwoosh.media.setRichMediaPresentationStyle(.modal)
// মোডাল উইন্ডোর চেহারা কনফিগার করুন
Pushwoosh.media.modalRichMedia.configure(
position: .PWModalWindowPositionBottom,
presentAnimation: .PWAnimationPresentFromBottom,
dismissAnimation: .PWAnimationDismissDown
)
Pushwoosh.configure.registerForPushNotifications()
return true
}

ডিফল্টরূপে, মোডাল রিচ মিডিয়া স্ক্রিনের কেন্দ্রে নীচে থেকে উপরে প্রদর্শনের অ্যানিমেশন সহ প্রদর্শিত হবে।

মোডাল রিচ মিডিয়া পজিশনিং

Anchor link to

মোডাল রিচ মিডিয়া স্ক্রিনের বিভিন্ন স্থানে অবস্থান করানো যেতে পারে।

/**
একটি মোডাল উইন্ডো প্রদর্শনের জন্য সম্ভাব্য অবস্থানগুলি নির্ধারণকারী enum।
- `PWModalWindowPositionTop`: মোডাল উইন্ডোটি স্ক্রিনের উপরে, নিরাপদ এলাকার মধ্যে প্রদর্শিত হয়।
- `PWModalWindowPositionCenter`: মোডাল উইন্ডোটি স্ক্রিনের কেন্দ্রে, নিরাপদ এলাকার মধ্যে প্রদর্শিত হয়।
- `PWModalWindowPositionBottom`: মোডাল উইন্ডোটি স্ক্রিনের নীচে, নিরাপদ এলাকার মধ্যে প্রদর্শিত হয়।
- `PWModalWindowPositionBottomSheet`: মোডাল উইন্ডোটি স্ক্রিনের একেবারে নীচে, নিরাপদ এলাকা উপেক্ষা করে প্রদর্শিত হয়।
- `PWModalWindowPositionDefault`: ডিফল্ট অবস্থান হল স্ক্রিনের কেন্দ্র, নিরাপদ এলাকার মধ্যে।
*/
typedef NS_ENUM(NSInteger, ModalWindowPosition) {
PWModalWindowPositionTop, // স্ক্রিনের উপরে প্রদর্শিত হয় (নিরাপদ এলাকার মধ্যে)
PWModalWindowPositionCenter, // স্ক্রিনের কেন্দ্রে প্রদর্শিত হয় (নিরাপদ এলাকার মধ্যে)
PWModalWindowPositionBottom, // স্ক্রিনের নীচে প্রদর্শিত হয় (নিরাপদ এলাকার মধ্যে)
PWModalWindowPositionBottomSheet, // স্ক্রিনের একেবারে নীচে প্রদর্শিত হয় (নিরাপদ এলাকা উপেক্ষা করে)
PWModalWindowPositionFullScreen, // ফুলস্ক্রিন, নিরাপদ এলাকার ইনসেট উপেক্ষা করে
PWModalWindowPositionDefault // ডিফল্ট অবস্থান (স্ক্রিনের কেন্দ্র, নিরাপদ এলাকার মধ্যে)
};

নীচের উদাহরণটি স্ক্রিনের উপরে প্রদর্শিত একটি মোডাল রিচ মিডিয়া দেখাচ্ছে।

মোডাল রিচ মিডিয়া শো অ্যানিমেশনগুলির মধ্যে রয়েছে:

typedef NS_ENUM(NSInteger, PresentModalWindowAnimation) {
PWAnimationPresentFromBottom,
PWAnimationPresentFromTop,
PWAnimationPresentFromRight,
PWAnimationPresentFromLeft,
PWAnimationPresentNone
};

মোডাল রিচ মিডিয়া ক্লোজ অ্যানিমেশনগুলির মধ্যে রয়েছে:

typedef NS_ENUM(NSInteger, DismissModalWindowAnimation) {
PWAnimationDismissDown,
PWAnimationDismissUp,
PWAnimationDismissLeft,
PWAnimationDismissRight,
PWAnimationCurveEaseInOut,
PWAnimationDismissNone,
/**
* ডিফল্ট ডিসমিস অ্যানিমেশন হল `PWAnimationCurveEaseInOut`
*/
PWAnimationDismissDefault
};

নীচের উদাহরণটি বাম থেকে ডানে শো অ্যানিমেশন এবং ডানদিকে ক্লোজ অ্যানিমেশন সহ স্ক্রিনের নীচে মোডাল রিচ মিডিয়া প্রদর্শন দেখাচ্ছে:

মোডাল রিচ মিডিয়ার জন্য অতিরিক্ত প্যারামিটার

Anchor link to

মোডাল রিচ মিডিয়া প্রদর্শনের জন্য অতিরিক্ত প্যারামিটারগুলির মধ্যে রয়েছে ভাইব্রেশন টাইপের হ্যাপটিক ফিডব্যাক যোগ করা, সোয়াইপ জেসচার সক্রিয় করা এবং একটি নির্দিষ্ট সময় পরে একটি স্বয়ংক্রিয় ক্লোজ টাইমার সেট করা।

// হ্যাপটিক ফিডব্যাক টাইপ
Pushwoosh.media.modalRichMedia.setHapticFeedbackType(.PWHapticFeedbackLight)
// ডিসমিস করার জন্য সোয়াইপ দিকনির্দেশ
Pushwoosh.media.modalRichMedia.setDismissSwipeDirections([
NSNumber(value: DismissSwipeDirection.PWSwipeDismissDown.rawValue),
NSNumber(value: DismissSwipeDirection.PWSwipeDismissUp.rawValue)
])
// রিচ মিডিয়া কর্নার রেডিয়াস সেট করুন
let topCorners = PWCornerTypeTopLeft.rawValue | PWCornerTypeTopRight.rawValue
Pushwoosh.media.modalRichMedia.setCornerType(CornerType(rawValue: topCorners), withRadius: 16)
// N সেকেন্ড পরে মোডাল রিচ মিডিয়া বন্ধ করুন
Pushwoosh.media.modalRichMedia.closeAfter(3)

হ্যাপটিক ফিডব্যাক টাইপ:

typedef NS_ENUM(NSInteger, HapticFeedbackType) {
PWHapticFeedbackLight, // হালকা ভাইব্রেশন ফিডব্যাক
PWHapticFeedbackMedium, // মাঝারি ভাইব্রেশন ফিডব্যাক
PWHapticFeedbackHard, // শক্তিশালী ভাইব্রেশন ফিডব্যাক
PWHapticFeedbackNone // ভাইব্রেশন বন্ধ (ডিফল্ট)
};

সোয়াইপ দিকনির্দেশ:

typedef NS_ENUM(NSInteger, DismissSwipeDirection) {
PWSwipeDismissDown,
PWSwipeDismissUp,
PWSwipeDismissLeft,
PWSwipeDismissRight,
PWSwipeDismissNone
};

PWRichMediaPresentingDelegate

Anchor link to

মোডাল রিচ মিডিয়ার কিউ পরিচালনা করতে, আপনাকে PWRichMediaPresentingDelegate-এর ডেলিগেট মেথডগুলি প্রয়োগ করতে হবে। এই কার্যকারিতা ব্যবহার করার সময়, মোডাল রিচ মিডিয়াগুলি ক্রমানুসারে উপস্থাপিত হয়, এবং ব্যবহারকারী বর্তমানটি বন্ধ না করা পর্যন্ত পরবর্তীটি প্রদর্শিত হবে না। একবার ব্যবহারকারী উপস্থাপিত রিচ মিডিয়াটি বন্ধ করলে, পরবর্তীটি, যা একটি ভিন্ন পুশ নোটিফিকেশনের অংশ ছিল, তা দেখানো হবে।

import UIKit
import PushwooshFramework
@main
class AppDelegate: UIResponder, UIApplicationDelegate, PWRichMediaPresentingDelegate {
var richMediaQueue: [PWRichMedia] = []
var isPresenting = false
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// মোডাল রিচ মিডিয়া কনফিগার করুন
Pushwoosh.media.setRichMediaPresentationStyle(.modal)
Pushwoosh.media.modalRichMedia.configure(
position: .PWModalWindowPositionBottom,
presentAnimation: .PWAnimationPresentFromBottom,
dismissAnimation: .PWAnimationDismissDown
)
// ডেলিগেট সেট করুন
Pushwoosh.media.modalRichMedia.delegate = self
Pushwoosh.configure.registerForPushNotifications()
return true
}
// MARK: - PWRichMediaPresentingDelegate
func richMediaManager(_ richMediaManager: PWRichMediaManager, shouldPresent richMedia: PWRichMedia) -> Bool {
if !richMediaQueue.contains(where: { $0 === richMedia }) {
richMediaQueue.append(richMedia)
}
return !isPresenting
}
func richMediaManager(_ richMediaManager: PWRichMediaManager, didPresent richMedia: PWRichMedia) {
isPresenting = true
}
func richMediaManager(_ richMediaManager: PWRichMediaManager, didClose richMedia: PWRichMedia) {
isPresenting = false
if let idx = richMediaQueue.firstIndex(where: { $0 === richMedia }) {
richMediaQueue.remove(at: idx)
}
// কিউতে পরবর্তী রিচ মিডিয়া উপস্থাপন করুন
if let nextRichMedia = richMediaQueue.first {
Pushwoosh.media.modalRichMedia.present(nextRichMedia)
}
}
func richMediaManager(_ richMediaManager: PWRichMediaManager, presentingDidFailFor richMedia: PWRichMedia, withError error: Error) {
richMediaManager(richMediaManager, didClose: richMedia)
}
}