ข้ามไปยังเนื้อหา

Unity

ดาวน์โหลดปลั๊กอิน
ดาวน์โหลดตัวอย่าง
เอกสารปลั๊กอิน

ขั้นตอนการผสานระบบ

Anchor link to

ในการผสาน Pushwoosh เข้ากับแอปพลิเคชัน Unity ของคุณ ให้ทำตามขั้นตอนต่อไปนี้:

  1. ดาวน์โหลดไฟล์ google-services.json จาก Firebase console ของคุณตามที่อธิบายไว้ ที่นี่ และนำไปไว้ในโฟลเดอร์ Assets ของโปรเจกต์คุณ ชื่อแพ็กเกจของแอปของคุณควรถูกเพิ่มเข้าไปในโปรเจกต์ Firebase และคงอยู่ในไฟล์ google-services.json
  2. นำเข้า ปลั๊กอินการแจ้งเตือนแบบพุชของ Unity ไปยังโฟลเดอร์ Assets ของคุณใน Unity

การผสานระบบ Android

Anchor link to

อัปเดต AndroidManifest.xml

Anchor link to

รวมเนื้อหาของ **Assets/Plugins/Android/PushwooshAndroidManifest.xml** เข้ากับ **Assets/Plugins/Android/AndroidManifest.xml** หากคุณยังไม่มี Android Manifest ให้เปลี่ยนชื่อ PushwooshAndroidManifest.xml เป็น AndroidManifest.xml

แทนที่ PACKAGE_NAME ด้วยแพ็กเกจโปรเจกต์ของคุณ โปรดทราบว่าใน Unity จะเรียกว่า ‘Bundle Identifier’

ลงทะเบียนการแจ้งเตือนแบบพุช

Anchor link to

สร้างสคริปต์ PushNotificator.cs และแนบเข้ากับ Camera Object ในซีน

using UnityEngine;
using System.Collections;
public class PushNotificator : MonoBehaviour {
// ใช้สำหรับการเริ่มต้น
void Start () {
Pushwoosh.ApplicationCode = "ENTER_PUSHWOOSH_APP_ID_HERE";
Pushwoosh.FcmProjectNumber = "ENTER_FCM_SENDER_ID_HERE";
Pushwoosh.Instance.OnRegisteredForPushNotifications += OnRegisteredForPushNotifications;
Pushwoosh.Instance.OnFailedToRegisteredForPushNotifications += OnFailedToRegisteredForPushNotifications;
Pushwoosh.Instance.OnPushNotificationsReceived += OnPushNotificationsReceived;
Pushwoosh.Instance.RegisterForPushNotifications ();
}
void OnRegisteredForPushNotifications(string token)
{
// จัดการที่นี่
Debug.Log("ได้รับ token: \n" + token);
}
void OnFailedToRegisteredForPushNotifications(string error)
{
// จัดการที่นี่
Debug.Log("เกิดข้อผิดพลาดขณะลงทะเบียนการแจ้งเตือนแบบพุช: \n" + error);
}
void OnPushNotificationsReceived(string payload)
{
// จัดการที่นี่
Debug.Log("ได้รับการแจ้งเตือนแบบพุช: \n" + payload);
}
}

ตั้งค่า Device API token

Anchor link to

ในไฟล์ AndroidManifest.xml ของคุณ ให้เพิ่มข้อมูลต่อไปนี้:

<meta-data android:name="com.pushwoosh.apitoken" android:value="YOUR_DEVICE_API_TOKEN" />

เรียนรู้เพิ่มเติมเกี่ยวกับ Pushwoosh Device API Token ของคุณ

สำคัญ: ตรวจสอบให้แน่ใจว่าได้ให้สิทธิ์โทเค็นเข้าถึงแอปที่ถูกต้องใน Pushwoosh Control Panel ของคุณ เรียนรู้เพิ่มเติม

การผสานระบบ iOS

Anchor link to

การซ่อนการแจ้งเตือน

Anchor link to

หากต้องการซ่อนการแจ้งเตือนเมื่อแอปพลิเคชันทำงานอยู่เบื้องหน้า (foreground) เพียงแค่ตั้งค่า Pushwoosh_SHOW_ALERT เป็น NO ในไฟล์ Info.plist ของคุณ

ตั้งค่า Device API token

Anchor link to

ในไฟล์ Info.plist ของคุณ ให้ตั้งค่าคีย์ PW_API_TOKEN เป็น Pushwoosh Device API Token

สำคัญ: ตรวจสอบให้แน่ใจว่าโทเค็นมีสิทธิ์เข้าถึงแอปพลิเคชันที่ถูกต้องใน Pushwoosh Control Panel ของคุณ เรียนรู้เพิ่มเติม

เปิดใช้งานการแจ้งเตือนแบบพุชใน Xcode

Anchor link to

Xcode ต้องการให้เปิดใช้งาน Push Notifications ในส่วน Capabilities เพื่อลงทะเบียนสำหรับการแจ้งเตือนแบบพุช สำหรับสิ่งนี้ ไปที่ CapabilitiesEnable Push Notifications

เปิดใช้งาน Remote notifications สำหรับ Background Modes ในส่วน Capabilities

ส่วนเสริมของ Android

Anchor link to

หากต้องการรับการแจ้งเตือนแบบพุชบน Android เมื่อแอปพลิเคชันทำงานอยู่โดยไม่ต้องโพสต์การแจ้งเตือนไปยังศูนย์การแจ้งเตือน ให้ตั้งค่าบรรทัดต่อไปนี้ใน AndroidManifest.xml เป็น true:

<meta-data android:name="PW_BROADCAST_PUSH" android:value="false" />

การผสานระบบ Amazon

Anchor link to

ขอรับ API Key จาก Amazon

Anchor link to

รับ API KEY จาก Amazon ตาม คู่มือของ Amazon

สำหรับแอปเวอร์ชันก่อนเผยแพร่หรือเวอร์ชัน “debug” คุณต้องสร้าง API Key และจัดเก็บเป็นข้อมูลเพียงอย่างเดียวในไฟล์ชื่อ api_key.txt ไฟล์ api_key.txt จะต้องอยู่ในโฟลเดอร์ Assets ของโปรเจกต์ของคุณ

สำหรับแอปเวอร์ชันเผยแพร่หรือเวอร์ชัน “production” คุณอาจไม่จำเป็นต้องสร้าง API Key เฉพาะในกรณีที่คุณลงนามแอปเวอร์ชันเผยแพร่ด้วยใบรับรองของคุณเอง คุณจึงจะต้องสร้าง API Key เพิ่มเติมสำหรับแอปเวอร์ชันนั้น มิฉะนั้น หากคุณอนุญาตให้ Amazon ลงนามในแอปในนามของคุณ คุณก็ไม่จำเป็นต้องสร้าง API Key เพิ่มเติม

การผสานระบบ Windows Store

Anchor link to
  1. เพิ่มไฟล์ link.xml ไปยังไดเรกทอรี Assets/ ของคุณด้วยเนื้อหาต่อไปนี้:
<linker>
<assembly fullname="PushSDK" preserve="all"/>
</linker>
  1. คุณต้องทำการ Associate App with the Store ในโปรเจกต์ Visual Studio ที่ส่งออกด้วย ตรวจสอบให้แน่ใจว่าแอปของคุณได้รับการลงนามด้วยใบรับรองที่ตรงกับ Publisher Identity ของคุณ

เลือกความสามารถ Internet (Client) ในแท็บ Capabilities ของไฟล์ .appxmanifest ของคุณในโปรเจกต์ Visual Studio ที่ส่งออก

ปัญหาที่พบในโปรเจกต์ Unity ที่ติดตั้งปลั๊กอิน Pushwoosh

Anchor link to

หากคุณพบข้อผิดพลาดดังที่แสดงในภาพด้านล่าง อาจเกิดจากปัญหาของเฟรมเวิร์ก Unity กับโปรเจกต์ที่มีปลั๊กอินของบุคคลที่สาม

บันทึกการแก้ไข ของ Unity เกี่ยวกับปัญหานี้ระบุว่า:

ณ จุดหนึ่ง UnityFramework runtime พร้อมกับปลั๊กอินจะถูกโหลดในขณะรันไทม์โดย dyld/NSBundle.load โปรดคำนึงถึงสิ่งนี้ในขณะที่พัฒนาปลั๊กอิน

การเริ่มต้นที่ใช้ API จำนวนมากบน +(load), attribute(constructor) และเส้นทางโค้ดการสร้างอ็อบเจ็กต์ส่วนกลางควรย้ายไปยังเฟสที่ใหม่กว่า โดยควรเป็นหลังจากที่ UnityFramework โหลดแล้ว และจะดีกว่านั้นเมื่อ Unity เริ่มต้นทำงานแล้ว

การเริ่มต้นข้อมูลธรรมดานั้นปลอดภัย แต่การเรียกใช้ที่ใช้ API จำนวนมากซึ่งเกี่ยวข้องกับส่วนอื่น ๆ ของระบบปฏิบัติการ โดยเฉพาะอย่างยิ่ง API ด้านเครือข่ายและอินเทอร์เฟซผู้ใช้อาจนำไปสู่การหยุดชะงัก (deadlock) ซึ่งส่งผลให้ watchdog ยุติการทำงาน

ด้วยการทำ delayed/lazy initialization (การเริ่มต้นแบบล่าช้า/ตามความจำเป็น) คุณจะสามารถควบคุมลำดับการเริ่มต้นได้ดีขึ้น สามารถลดเวลาในการโหลดแอปพลิเคชัน และที่สำคัญที่สุดคือหลีกเลี่ยงการหยุดชะงักที่อาจเกิดขึ้นได้

แนวทางแก้ไขที่เป็นไปได้

Anchor link to

ตามค่าเริ่มต้น UnityFramework.framework จะถูกฝังอยู่ในเป้าหมาย Unity-iPhone แต่ไม่ได้เชื่อมโยงกับมัน ด้วยเหตุนี้ UnityFramework จะถูกโหลดในภายหลังขณะรันไทม์ และปลั๊กอินบางตัวอาจมีความไวต่อเส้นทางการเริ่มต้นนี้

เพื่อแก้ไขปัญหานี้ ไปที่ Unity-iPhoneBuild Phases → ส่วนการสร้าง Link Binary with Libraries และเพิ่ม **UnityFramework.framework**

วิธีนี้จะช่วยให้แน่ใจว่า UnityFramework โหลดพร้อมกันกับไฟล์ปฏิบัติการหลัก

แบ่งปันความคิดเห็นของคุณกับเรา

Anchor link to

ความคิดเห็นของคุณช่วยให้เราสร้างประสบการณ์ที่ดีขึ้น ดังนั้นเรายินดีที่จะรับฟังจากคุณหากคุณมีปัญหาใด ๆ ในระหว่างขั้นตอนการผสาน SDK หากคุณประสบปัญหาใด ๆ โปรดอย่าลังเลที่จะแบ่งปันความคิดของคุณกับเรา ผ่านแบบฟอร์มนี้