Cordova 플러그인 사용자 정의
포그라운드에서의 푸시 알림
Anchor link to백그라운드에서 푸시를 수신할 때, 푸시 알림을 클릭할 때까지 이벤트가 트리거되지 않습니다. 알림이 열리면 Pushwoosh 플러그인은 push-receive 및 push-notification 이벤트를 발생시킵니다.
포그라운드에서 푸시가 수신되면 플러그인은 자동으로 push-receive를 발생시킵니다. 기본적으로 포그라운드 알림도 표시합니다. 사용자가 이 알림을 열면 플러그인은 push-notification을 발생시킵니다.
push-receive 이벤트를 수신하여 포그라운드에서 푸시가 수신된 경우 즉시 반응할 수 있습니다(예: 앱의 현재 페이지 콘텐츠 업데이트). 반면에 push-notification은 사용자 상호작용이 필요한 알림 클릭 이벤트에 반응하는 데 사용됩니다(예: 앱 내 탐색, 앱에서 새 프로세스 트리거 등).
기본적으로 플러그인은 iOS와 Android 모두에서 포그라운드 알림을 표시합니다. 이를 변경하려면 플러그인을 설치할 때 IOS_FOREGROUND_ALERT_TYPE 및 ANDROID_FOREGROUND_PUSH 변수를 설정합니다:
IOS_FOREGROUND_ALERT_TYPE
ALERT– 포그라운드 알림 표시 (기본값)NONE– 포그라운드 알림 숨김
BANNER를 포함하여 NONE 이외의 모든 값은 ALERT와 동일하게 작동합니다.
ANDROID_FOREGROUND_PUSH
true– 포그라운드 알림 표시 (기본값)false– 포그라운드 알림 숨김
두 플랫폼 모두에서 포그라운드 알림을 숨기는 예시:
cordova plugin add pushwoosh-cordova-plugin --variable IOS_FOREGROUND_ALERT_TYPE="NONE" --variable ANDROID_FOREGROUND_PUSH="false"런타임에 포그라운드 알림을 전환하려면 pushwoosh 객체에서 setShowPushnotificationAlert(show)를 호출합니다. 포그라운드 알림을 표시하려면 true를, 숨기려면 false를 전달합니다. iOS에서는 registerDevice 이후에 호출합니다.
ANDROID_FOREGROUND_PUSH가 true이면 setShowPushnotificationAlert(false)는 Android에서 포그라운드 알림을 숨기지 않습니다. Android에서 런타임에 포그라운드 알림을 제어하려면 ANDROID_FOREGROUND_PUSH="false"로 플러그인을 설치합니다.
플러그인은 ANDROID_FOREGROUND_PUSH를 AndroidManifest.xml의 com.pushwoosh.foreground_push 키에 기록합니다. Cordova 앱에서는 이 키의 true가 포그라운드 알림을 표시합니다. 네이티브 Android SDK에서는 같은 키가 반대 의미를 가집니다. true는 포그라운드 알림을 숨깁니다.
사용자 정의 푸시 사운드
Anchor link toAndroid에서 사용자 정의 알림 사운드를 활성화하려면 사운드 파일을 www/res 폴더에 배치하고 config.xml에서 각 사운드를 지정하십시오:
<?xml version=‘1.0’ encoding=‘utf-8’?><widget id="YOUR_ID" version="1.0.0" xmlns="http://www.w3.org/ns/widgets” xmlns:cdv=“http://cordova.apache.org/ns/1.0"> ... <platform name="android"> <allow-intent href="market:*" /> ... <-- Add this line for each sound --> <resource-file src="www/res/push.wav" target="res/raw/push.wav" /> </platform></widget>사운드는 Send Push 패널의 Sound 드롭다운 메뉴에서 액세스할 수 있습니다.
iOS에서는 사운드 파일이 아직 Pushwoosh 애플리케이션과 자동으로 연결되지 않지만, 수동으로 사용할 수 있습니다(예: www/res/sound_name.wav).
사용자 정의 푸시 아이콘
Anchor link to푸시 알림 아이콘은 Android에서 로컬로 해당 아이콘의 리소스 이름으로 pw_notification을 사용하여 사용자 정의할 수 있으며(샘플 1 2 참조), 또는 Send Push 패널의 Icon 설정에서 리소스 이름을 참조하여 원격으로 사용자 정의할 수 있습니다.
사용자 정의 푸시 데이터
Anchor link to사용자 정의 푸시 데이터는 Send Push 패널의 Action 설정을 사용하여 보낼 수 있습니다. 이러한 데이터를 수신하고 처리하려면 다음 코드를 사용하십시오:
document.addEventListener('push-notification', function(event) { var message = event.notification.message; // Push message var userData = event.notification.userdata; // Custom push data
if (userData) { // handle custom push data here } });로그 레벨 제어
Anchor link to디버깅 및 통합을 지원하기 위해 SDK는 기본적으로 모든 요청을 콘솔에 출력합니다. 프로덕션 빌드를 준비할 때 LOG_LEVEL 변수를 다음 값 중 하나로 설정하십시오:
NONE– SDK에서 로그 없음ERROR– 콘솔에 오류만 표시WARNING– 경고 표시INFO– 정보 메시지 표시DEBUG– 디버그 정보를 포함한 모든 것 표시 (기본값)
예시:
cordova plugin add pushwoosh-cordova-plugin --variable LOG_LEVEL="INFO"딥 링킹
Anchor link tohttps://github.com/EddyVerbruggen/Custom-URL-scheme 사용을 권장합니다.
Cordova에 대한 딥 링크 설정이 매우 쉬우며, Pushwoosh 딥 링킹 기능과 즉시 연동됩니다.
설치 및 사용법은 이 가이드 또는 플러그인 문서에서 찾을 수 있습니다.
리치 미디어 JS 브리지
Anchor link to자바스크립트 인터페이스를 통해 Cordova WebView의 리치 미디어에서 JS 함수를 호출할 수 있습니다.
리치 미디어에서의 호출은 다음 형식을 따라야 합니다:
<interface>.callFunction(‘<function_name>’, <params_string>)
예시:
1. 자바스크립트 호출로 리치 미디어를 생성합니다:
testBridge.callFunction('testFunction', JSON.stringify({'param1' : 1, 'param2':'test'}))2. 프로젝트에 자바스크립트 인터페이스를 추가합니다:
pushNotification.addJavaScriptInterface('testBridge');3. 함수를 추가합니다:
function testFunction(params) { alert("Bridge is working! " + params.param1 + " " + params.param2);}다른 FCM 서비스와 Pushwoosh 플러그인 함께 사용하기
Anchor link to앱이 firebase-messaging에 의존하는 다른 플러그인을 사용하는 경우, 충돌이 발생하거나 플러그인 중 하나가 예상대로 작동하지 않을 수 있습니다. 이 충돌을 해결하기 위해, 플러그인 간에 푸시 알림을 라우팅하는 사용자 정의 FirebaseMessagingService 클래스를 추가할 수 있습니다. Pushwoosh Cordova 플러그인에는 이 클래스의 템플릿이 포함되어 있으며, 이를 그대로 사용하여 모든 알림이 Pushwoosh 핸들러를 통과하도록 강제하거나, 다른 제공업체의 알림도 처리하도록 수정할 수 있습니다. 템플릿을 활성화하려면 플러그인의 plugin.xml에서 다음 줄의 주석을 해제하십시오:
<service android:name="com.pushwoosh.plugin.pushnotifications.CustomFirebaseMessagingService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT"/> </intent-filter> </service>피드백을 공유해주세요
Anchor link to여러분의 피드백은 더 나은 경험을 만드는 데 도움이 됩니다. SDK 통합 과정에서 문제가 발생하면 언제든지 알려주시기 바랍니다. 어려움이 있으시면 주저하지 마시고 이 양식을 통해 의견을 공유해 주세요.