我正在使用Xamarin.Forms实现OneSignal推送通知.
我需要将OneSignal返回的字符串传递AdditionalData给构造函数App().
所以我用来HandleNotificationOpened(OSNotificationOpenedResult result)处理通知点击并获取字符串,然后将其传递给LoadApplication(new App(myData)).
所以为此,我已经MainActivity为Android和AppDelegateiOS 编写了代码.
一切都适用于Android; 即HandleNotificationOpened()获取additionalData并传递给它LoadApplication(new App(myData)).
但是在iOS中,当我打开通知时,HandleNotificationOpened()代码不会被调用.
static string s = null;
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
OneSignal.Current.StartInit("MyKey").HandleNotificationOpened(HandleNotificationOpened).EndInit();
if(s!=null)
{
LoadApplication(new App(s));
}
else
{
LoadApplication(new App("myUrl.lasso"));
}
return base.FinishedLaunching(app, options);
}
private static void HandleNotificationOpened(OSNotificationOpenedResult result)
{
OSNotificationPayload payload = result.notification.payload;
Dictionary<string, object> additionalData = payload.additionalData;
if (additionalData != null)
{ …Run Code Online (Sandbox Code Playgroud) 我已经阅读了有关Android应用程序的App Indexin g和Deep Linking的信息.
据我所知,两者都是相同的,深度链接更容易,因为它只需要在Manifest.xml文件中添加一个intent过滤器.
那么为什么我需要使用应用程序索引?
是什么让它与深层链接不同?
需要一种不同的编码方式(android)来实现
Fire Base应用程序索引
这是一个指导Fire Base应用程序索引的链接:
https://firebase.google.com/docs/app-indexing/
这有必要吗?