2016-07-01 6 views
2

Wir entwickeln eine iOS- und Android-App in Xamarin.Forms und möchten bei der Erstinstallation und späteren Updates eine Registrierung und Validierung vornehmen, ohne dass der Benutzer die App öffnen muss. Ist das möglich?Kann unsere mobile App Code beim Installieren und Aktualisieren ausführen, bevor/ohne geöffnet zu werden?

+0

Nicht auf Android, zum Glück. Ich kann nicht für iOS sprechen. – CommonsWare

+0

In iOS können Sie die App nicht automatisch aktualisieren, der Benutzer sollte das App-Update starten. –

Antwort

0

Nein, es ist nicht möglich, ohne Benutzerinteraktion können Sie nichts tun!

+0

Also brauche ich den Benutzer, um die App zu öffnen, um sicherzustellen, dass wir immer noch für Push-Benachrichtigungen usw. registriert sind? Das ist schade. –

+1

Sobald Benutzerinteraktion dann können Sie alle entsprechend Ihrer Anforderung konfigurieren oder registrieren –

0

In Android können Sie auf Paket-Updates reagieren durch einen BroadcastReceiver Schreiben und Hören zu 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 ... 
      } 
     } 
    } 

Das Attribut "BroadcastReceiver" wird für Sie einen offensichtlichen Eintrag erzeugen.

Hinweis: Wenn Sie DependencyService innerhalb dieser Methode verwenden möchten: Dont. Es wird nicht funktionieren, weil Ihre App zu diesem Zeitpunkt noch nicht initialisiert wurde - also wird der DependencyService abstürzen, weil niemand Xamarin.Forms.Init() aufgerufen hat.

EDIT: Um genauer zu sein - Der Receiver wird offensichtlich nur für bereits installierte Apps aufgerufen - das heißt, wenn eine neue Version Ihrer App über eine bestehende installiert wurde.

Diese Lösung funktioniert nicht für Neuinstallationen.

Verwandte Themen