我们正在开发Xamarin.Forms中的iOS和Android应用程序,并且希望在初始安装和后续更新时进行一些注册和验证,而无需用户打开应用程序。这可能吗?
答案 0 :(得分:0)
不可能,如果没有用户互动,你就无法做任何事情!
答案 1 :(得分:0)
在Android中,您可以通过编写BroadcastReceiver并收听MY_PACKAGE_REPLACED来对包更新作出反应:
[BroadcastReceiver(Enabled = true, Exported = true), IntentFilter(new[] { Intent.ActionMyPackageReplaced })]
public class PackageUpdateReceiver : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
if (intent.Package == "your.package.name") // Action MY_PACKAGE_REPLACED should only be called for your package - so this is actually not needed ...
{
// do some stuff ...
}
}
}
属性“BroadcastReceiver”将为您生成清单条目。
注意:如果要在此方法中使用DependencyService:不要。它不会起作用,因为您的应用程序在此阶段未初始化 - 因此DependencyService将崩溃,因为没有人调用Xamarin.Forms.Init()。
编辑:更具体一点 - 显然只对所有已安装的应用程序调用Receiver - 这意味着当您的应用程序的新版本安装在现有应用程序上时。
此解决方案不适用于全新安装。