Wenn ich einen tiefen Link mit dem branch.io erstellt habe, öffnet sich ein bestimmter Bildschirm in meiner App. Wenn dieser Link auch in meiner App verfügbar ist und ein Nutzer darauf klickt, öffnet er meinen Bildschirm? oder es wird nichts tun, da der Link, den ich von der App aus öffne, auf dieselbe App verweist?Was passiert, wenn der Benutzer auf Deep Link in der App selbst klickt
0
A
Antwort
1
Wenn Sie in Ihrer App auf einen Zweiglink innerhalb eines WebView klicken, müssen Sie nach dem Lesen der Branch-Link-Parameter mit dem Routing zu der spezifischen Aktivität fertig werden.
Hier ist eine Beispielaktivität, die ein WebView enthält und ein paar Branch-Links zeigt. Wenn Sie auf einen Link in der webView klicken wieder öffnet die Webansicht und zeigt die Verbindungsparameter in einer Toast Nachricht, wenn ein Zweig Link
public class MainActivity extends AppCompatActivity {
private WebView webView_;
private Button button_;
private String TAG = "WebViewController";
private Context context_;
private static final String URL_TO_LOAD = "https://evangelosg.github.io/index.html";
private static final String BRANCH_LINK_TO_LOAD = "https://ere6.app.link/b6sS0gsCfG";
@Override
protected void onNewIntent(Intent intent) {
Log.d("WebView", "onNewIntent");
setIntent(intent);
}
@Override
protected void onResume() {
super.onResume();
Branch branch = Branch.getInstance();
branch.initSession(new Branch.BranchReferralInitListener() {
@Override
public void onInitFinished(JSONObject referringParams, BranchError error) {
if (error == null) {
Log.d(TAG, referringParams.toString());
Toast.makeText(context_, referringParams.toString(), Toast.LENGTH_LONG).show();
if (referringParams.has(BundleExtraKeys.CLICKED_BRANCH_LINK)) {
try {
boolean clickedBranchLink = referringParams.getBoolean(BundleExtraKeys.CLICKED_BRANCH_LINK);
if (clickedBranchLink) {
//do stuff!
}
} catch (JSONException e) {
Log.d("BranchTrends", e.getMessage());
}
}
} else {
Log.i("MyApp", error.getMessage());
}
}
}, this.getIntent().getData(), this);
}
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context_ = this;
setContentView(R.layout.activity_main);
webView_ = (WebView) findViewById(R.id.webView);
webView_.setWebViewClient(new BranchWebViewController("app.link", MainActivity.class));
webView_.loadUrl(URL_TO_LOAD);
button_ = (Button) findViewById(R.id.button);
button_.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.intent.putExtra("branch", BRANCH_LINK_TO_LOAD);
customTabsIntent.intent.putExtra("branch_force_new_session", true);
finish();
customTabsIntent.launchUrl(MainActivity.this, Uri.parse(BRANCH_LINK_TO_LOAD));
}
});
}
public class BranchWebViewController extends WebViewClient {
private String myDomain_;
private Class activityToLaunch_;
BranchWebViewController(@NonNull String myDomain, Class activityToLaunch) {
myDomain_ = myDomain;
activityToLaunch_ = activityToLaunch;
}
@Override
public void onLoadResource(WebView view, String url) {
super.onLoadResource(view, url);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
String url = request.getUrl().toString();
if (url.contains(myDomain_)) {
Intent i = new Intent(view.getContext(), activityToLaunch_);
i.putExtra("branch", url);
i.putExtra("branch_force_new_session", true);
finish();
startActivity(i);
} else {
view.loadUrl(url);
}
return true;
}
}
}
geklickt wird Nachdem Sie die Verbindungsparameter lesen können Sie Route auf die entsprechende Aktivität basierend auf die Verbindungsparameter.
Verwandte Themen
- 1. Was passiert, wenn der Benutzer auf .NET Assembly (EXE) klickt?
- 2. Was passiert mit PendingIntents, wenn der Benutzer die App aktualisiert?
- 3. Deep Link in Android App
- 4. Was passiert, wenn Benutzer Update-App von AppleStore
- 5. Deep Link Fallback
- 6. App abgestürzt, wenn Deep-Link verwenden
- 7. Ereignis erhalten, wenn Benutzer Deep-Link auf WhatsApp sendet
- 8. hitest auf einem TTSstyledText gibt einen leeren Rahmen zurück, selbst wenn der Benutzer auf einen gültigen Link klickt
- 9. Mein AngularJS-Dienst wird nicht aktualisiert, wenn der Benutzer auf einen Link mit verschiedenen $ routeParams klickt
- 10. Swift 3 Überprüfen, wenn der Benutzer auf das Bild klickt
- 11. Zeige das Dialogfeld "Vollständige Aktion mit", wenn der Benutzer auf den Link in einem WebView klickt
- 12. Android Deep Link in Instagram App
- 13. Deep Link zum Tab "Medizinische ID" der Health App?
- 14. Android Instant App Deep Link
- 15. Google App lädt SMS Deep Link nicht öffnen App
- 16. Was ist der App-Code zum Erstellen der URL-Deep-Link in Firebase für Android
- 17. Deep Link verursacht mehrere Instanzen der App zu öffnen
- 18. Wie wird ein Countdown festgelegt, wenn der Benutzer auf einen Link klickt?
- 19. Android Deep Linking, wenn der Benutzer die App NICHT installiert hat
- 20. Was passiert mit der Realm-Datenbank, wenn der Benutzer die Android App aus dem Store aktualisiert?
- 21. Wie kann eine Funktion am besten ausgeführt werden, wenn der Benutzer auf einen Link klickt?
- 22. Was passiert im Hintergrund, wenn Benutzer die App deinstalliert
- 23. Nachricht von App empfangen, wenn Benutzer auf obere Leiste klickt
- 24. Deep Link with UIImage
- 25. CSS zurücksetzen, wenn der Benutzer auf eine andere Schaltfläche klickt
- 26. Formular absenden, wenn der Benutzer auf die Schaltfläche "Zurück" klickt
- 27. Abbrechen von UISearchBar, wenn der Benutzer auf die Ansicht klickt
- 28. jQuery mehrstufige Formularanimation, wenn der Benutzer auf "Senden" klickt
- 29. deaktivieren Hintergrund, wenn der Benutzer „Klicks“ auf einem Link
- 30. Deep Link auf bestimmte Nachricht in Google Mail-App