我们的移动应用程序可以在安装和更新之前执行代码吗?

时间:2016-07-01 17:59:39

标签: android ios events mobile xamarin.forms

我们正在开发Xamarin.Forms中的iOS和Android应用程序,并且希望在初始安装和后续更新时进行一些注册和验证,而无需用户打开应用程序。这可能吗?

2 个答案:

答案 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 - 这意味着当您的应用程序的新版本安装在现有应用程序上时。

此解决方案不适用于全新安装。