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

MAUI Dotnet

การผสานการทำงาน SDK

Anchor link to

1. เพิ่มแพ็คเกจ Nuget Pushwoosh.DotNet ไปยังโปรเจกต์ทั้ง Android และ iOS:

2. ยอมรับใบอนุญาตสำหรับ dependency ของ Android แบบ transitive หากจำเป็น:

3. กำหนดค่าโปรเจกต์ของคุณใน Firebase Console

4. เพิ่ม google-services.json ไปยังไดเรกทอรีรากของแพลตฟอร์ม Android ของคุณ ตั้งค่า Build Action เป็น GoogleServicesJson สำหรับไฟล์นี้:

5. เพิ่มบรรทัดต่อไปนี้ก่อนการประกาศ namespace ใน MainActivity.cs ของคุณ (XXXXX-XXXXX ในที่นี้คือ Pushwoosh Application ID ของคุณ):

[assembly: MetaData("com.pushwoosh.appid", Value = "XXXXX-XXXXX")]
[assembly: MetaData("com.pushwoosh.senderid", Value = "@string/fcm_sender_id")]

6. ใน MainActivity.cs ของคุณ ให้ override เมธอด OnCreate() และเรียกใช้ PushManager.Init(); หลังจาก base.OnCreate(savedInstanceState);

using Pushwoosh.Android;
...
public class MainActivity : MauiAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
PushManager.Init();
}
}

7. ในโปรเจกต์ Android ของคุณ ให้ค้นหาไฟล์ Resources/values/strings.xml หรือสร้างขึ้นมาใหม่ เพิ่มสตริง Sender ID ของคุณที่นั่น:

<string name="fcm_sender_id">รหัสผู้ส่งของคุณ</string>

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

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

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

9. ทำการเปลี่ยนแปลงต่อไปนี้ใน AppDelegate.cs ของโปรเจกต์ iOS ของคุณ:

ที่จุดเริ่มต้นของเมธอด FinishedLaunching ให้ใส่บรรทัดต่อไปนี้:
PushManager.Init();

เพิ่มเมธอดเหล่านี้ไปยัง AppDelegate (คลาส MauiUIApplicationDelegate ไม่ได้ export เมธอดเหล่านี้โดยค่าเริ่มต้น ดังนั้นคุณต้องทำด้วยตนเอง):

[Export("application:didReceiveRemoteNotification:fetchCompletionHandler:")]
public void DidReceiveRemoteNotification(UIKit.UIApplication application, NSDictionary userInfo, Action<UIKit.UIBackgroundFetchResult> completionHandler)
{
PushManager.Instance.ReceivedRemoteNotification(userInfo);
}
[Export("application:didRegisterForRemoteNotificationsWithDeviceToken:")]
public void RegisteredForRemoteNotifications(UIKit.UIApplication application, NSData deviceToken)
{
PushManager.Instance.RegisteredForRemoteNotifications(deviceToken);
}
[Export("application:didFailToRegisterForRemoteNotificationsWithError:")]
public void FailedToRegisterForRemoteNotifications(UIKit.UIApplication application, NSError error)
{
PushManager.Instance.FailedToRegisterForRemoteNotifications(error);
}

10. ใน Info.plist ให้เปลี่ยนค่า Pushwoosh_APPID เป็น Pushwoosh Application Code ของคุณ คุณสามารถค้นหาได้ใน Control Panel ของคุณ:

11. ใน Info.plist ให้ตั้งค่า:

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

12. ในส่วน cross-platform ของ App.xaml.cs ให้เพิ่มการลงทะเบียนไปยังเมธอด onStart:

using PushwooshSDK.DotNet.Core;
...
public partial class App : Application
{
...
protected override void OnStart()
{
base.OnStart();
PushManager.Instance.Register();
}
}

หมายเหตุสำหรับผู้ใช้ Windows: เมื่อทำการ build คุณอาจพบปัญหาที่เกี่ยวข้องกับความยาวของเส้นทางไฟล์ ปัญหานี้เกิดจากความยาวรวมของไดเรกทอรีที่ Visual Studio ใช้และเส้นทางไฟล์ภายใน Pushwoosh SDK เกินขีดจำกัดความยาวเส้นทางสูงสุดของ Windows ที่ 260 อักขระ เพื่อแก้ไขปัญหานี้ ให้เปิดใช้งานการตั้งค่า LongPathsEnabled ใน Windows Registry

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

Anchor link to

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