danke, es funktioniert. Aber ich habe ein Problem mit NFC und Instant App. Ich möchte die Instant App über ein NFC-Tag öffnen. Auf dem NFC-Tag wird die URL gespeichert. Aber wenn ich mit einem Telefon auf das NFC-Tag tippe, öffnet sich ein Browser. Wenn ich über Google Mail auf dieselbe URL klicke, wird die Instant App geöffnet. Wissen Sie, warum..?
– Stonek
17. Januar 2018 um 15:37 Uhr
Vielleicht möchten Sie Folgendes überprüfen: stackoverflow.com/questions/46948624/instant-apps-with-nfc
– Kyle Venn
17. Januar 2018 um 15:59 Uhr
@KyleVenn Ich habe es auch gefunden und alle Antworten/Kommentare gelesen, aber es gibt keine Lösung dafür
– Stonek
17. Januar 2018 um 16:04 Uhr
Es sieht so aus, als ob das Öffnen über NFC auf Pre-O-Geräten funktionieren sollte und der Android Oreo-Bug verfolgt wird hier.
Bei Vimeo verwenden wir Branch für unsere Web-> Mobile-App-Installation sowie unsere Instant-App-> Mobile-App-Installation (da es einige zusätzliche Metriken liefert und uns die Referrer etwas besser vergleichen lässt).
Wenn Sie daran interessiert sind, Branch zu verwenden, finden Sie die Dokumentation für die Installationsaufforderung hier. Und die Verwendung sieht so aus:
Die Implementierung von Branch ruft schließlich die in der anderen Antwort erwähnte API auf hier.
Was aussieht wie:
public static boolean showInstallPrompt(Activity activity,
Intent postInstallIntent,
int requestCode,
String referrer)
Zeigt einen Dialog an, der es dem Benutzer ermöglicht, die aktuelle Instant-App zu installieren. Diese Methode ist keine Operation, wenn der aktuell ausgeführte Prozess eine installierte App ist. Sie müssen eine Absicht nach der Installation angeben, die das System verwendet, um die Anwendung nach Abschluss der Installation zu starten.
Sie finden eine Beispielverwendung hier. Und sieht wie folgt aus:
class InstallApiActivity : AppCompatActivity() {
/**
* Intent to launch after the app has been installed.
*/
private val postInstallIntent = Intent(Intent.ACTION_VIEW,
Uri.parse("https://install-api.instantappsample.com/")).
addCategory(Intent.CATEGORY_BROWSABLE).
putExtras(Bundle().apply {
putString("The key to", "sending data via intent")
})
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_install)
val isInstantApp = InstantApps.isInstantApp(this)
findViewById<Button>(R.id.start_installation).apply {
isEnabled = isInstantApp
// Show the installation prompt only for an instant app.
if (isInstantApp) {
setOnClickListener {
InstantApps.showInstallPrompt(this@InstallApiActivity,
postInstallIntent,
REQUEST_CODE,
REFERRER)
}
}
}
}
companion object {
private val REFERRER = "InstallApiActivity"
private val REQUEST_CODE = 7
}
}
Es wird nicht empfohlen, da es veraltet ist, aber Sie können das Dialogfeld technisch mit dem folgenden Code anzeigen lassen:
Kennen Sie eine Java-Version davon? Java erkennt zum Beispiel ‘Bundle()’ nicht. Unglaublicherweise habe ich noch nie ein Java-Beispiel einer ‘showInstallPrompt’-Implementierung mit dem zugehörigen ‘postInstallIntent’ gesehen, wie eine Übersetzung dieser Referenz auf den Github-Kotlin-Code.
– Androidcoder
4. September 2019 um 15:30 Uhr
10140700cookie-checkÖffnen von Google Play im Popup (wie Vimeo, Wisher, Buzzfeed) – Instant Appyes