Xam.Plugins.Notifier:Android 点击 Xamarin.Forms.Shell
Xam.Plugins.Notifier: Android Tap in Xamarin.Forms.Shell
使用 Xam.Plugins.Notifier 进行本地通知,我可以在 Android 中显示通知。但是,当我点击通知时,它会重新加载应用程序。类似于远程通知的方式。
我在 MainActivitiy.cs 中处理 OnNewIntent() 但它从未触发。
如何点击 Xam.Plugins.Notifier 发出的本地通知,以便 OnNewIntent() 触发并显示 Shell 项目?
protected async override void OnNewIntent(Intent intent)
{
base.OnNewIntent(intent);
var title = intent.GetStringExtra("title");
if (title != null)
{
await Shell.Current.GoToAsync("Tools/Sales");
}
}
我有一个实际启动应用程序的 SplashScreen Activity:
如何将启动 activity 的 Intent 从 Splash
传递到 MainActitity
[Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, NoHistory = true, LaunchMode = Android.Content.PM.LaunchMode.SingleTop)]
public class SplashActivity : AppCompatActivity
{
public override void OnCreate(Bundle savedInstanceState, PersistableBundle persistentState)
{
base.OnCreate(savedInstanceState, persistentState);
}
// Launches the startup task
protected override void OnResume()
{
base.OnResume();
StartActivity(new Intent(Application.Context, typeof(MainActivity)));
}
public override void OnBackPressed() { }
}
在 MainActivty
class 上,将其 LaunchMode
设置为 SingleTop
这样 OS 将重用 activity 如果它是全部已经 运行 与开始新的:
[Activity(Label = "Your Xamarin Forms App", MainLauncher = true, Icon = "@mipmap/icon", LaunchMode = Android.Content.PM.LaunchMode.SingleTop)]
注意:通知意图
有两个进入MainActvity
的入口点
一个。如果 activity 已经是 运行,将根据您在通知中设置的意图调用 OnNewIntent
。
b。如果您的应用不是 运行,MainActvity
将作为正常启动创建,但会包含来自通知的意图,因此请检查 OnCreate 中的意图。
使用 Xam.Plugins.Notifier 进行本地通知,我可以在 Android 中显示通知。但是,当我点击通知时,它会重新加载应用程序。类似于远程通知的方式。
我在 MainActivitiy.cs 中处理 OnNewIntent() 但它从未触发。
如何点击 Xam.Plugins.Notifier 发出的本地通知,以便 OnNewIntent() 触发并显示 Shell 项目?
protected async override void OnNewIntent(Intent intent)
{
base.OnNewIntent(intent);
var title = intent.GetStringExtra("title");
if (title != null)
{
await Shell.Current.GoToAsync("Tools/Sales");
}
}
我有一个实际启动应用程序的 SplashScreen Activity:
如何将启动 activity 的 Intent 从 Splash
传递到 MainActitity[Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, NoHistory = true, LaunchMode = Android.Content.PM.LaunchMode.SingleTop)]
public class SplashActivity : AppCompatActivity
{
public override void OnCreate(Bundle savedInstanceState, PersistableBundle persistentState)
{
base.OnCreate(savedInstanceState, persistentState);
}
// Launches the startup task
protected override void OnResume()
{
base.OnResume();
StartActivity(new Intent(Application.Context, typeof(MainActivity)));
}
public override void OnBackPressed() { }
}
在 MainActivty
class 上,将其 LaunchMode
设置为 SingleTop
这样 OS 将重用 activity 如果它是全部已经 运行 与开始新的:
[Activity(Label = "Your Xamarin Forms App", MainLauncher = true, Icon = "@mipmap/icon", LaunchMode = Android.Content.PM.LaunchMode.SingleTop)]
注意:通知意图
有两个进入MainActvity
的入口点
一个。如果 activity 已经是 运行,将根据您在通知中设置的意图调用 OnNewIntent
。
b。如果您的应用不是 运行,MainActvity
将作为正常启动创建,但会包含来自通知的意图,因此请检查 OnCreate 中的意图。