gpt4 book ai didi

android - 如何覆盖在应用程序消息中的深层链接中打开 Appboy 网络 Activity 的行为

转载 作者:行者123 更新时间:2023-11-29 15:08:25 32 4
gpt4 key购买 nike

我在覆盖 Appboy 深层链接中的点击行为时遇到问题

请查出以下数据

1- 在 BaseActivity 中注册 Appboy,它是所有应用程序 Activity 的父 Activity

@Override
protected void onResume() {

AppboyInAppMessageManager.getInstance().registerInAppMessageManager(this);
Appboy.getInstance(this).requestInAppMessageRefresh();
}

@Override
protected void onPause() {

AppboyInAppMessageManager.getInstance().unregisterInAppMessageManager(this);
}

2- 在 Manifest 文件中添加接收器如下

<receiver android:name="com.forsale.forsale.appboy.AppboyGcmReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.forsale.forsale" />
</intent-filter>
</receiver>

<receiver
android:name="com.forsale.forsale.appboy.AppBoyOpenReceiver"
android:exported="false" >
<intent-filter>
<action android:name="com.forsale.forsale.intent.APPBOY_PUSH_RECEIVED" />
<action android:name="com.forsale.forsale.intent.APPBOY_NOTIFICATION_OPENED" />
</intent-filter>
</receiver>

知道我可以使用 app boy 仪表板发送应用消息,并接收消息,但是当我单击消息时,它会打开带有链接的 appboy 网络 Activity

我需要重写此行为才能获取我在应用内消息中发送的链接并从中解析一些参数并将其用于我应用内的 Activity

我试过以下方法

  • 从 list 文件中删除默认的应用程序男孩 Web Activity ///应用程序崩溃
  • 实现 IInAppMessageManagerListener///应用程序停止接收任何消息

请注意,应用程序在尝试注册 appboy 并打印日志时会调用 onReceive 方法(action = REGISTRATION, RegId = "..."),但它永远不会执行任何其他操作,如 RECEIVE 或 OPEN

public void onReceive(Context context, Intent intent) {

AppboyLogger.i("AMIRA", String.format("Amira %s", intent.toString()));
String action = intent.getAction();
AppboyLogger.i("AMIRA", String.format("Amira %s", action));

Bundle bundle = intent.getExtras();
for (String key : bundle.keySet()) {
Object value = bundle.get(key);
AppboyLogger.i("AMIRA", String.format("Amira %s", key + ":" + value.toString()));
}
}

最佳答案

问题的根源是我们根据 URI 的模式区分深度链接和 http 链接,因此 http(和其他一些模式)链接被检测为网页链接,而其他格式被视为深度链接(参见 https://github.com/Appboy/appboy-android-sdk/blob/master/android-sdk-ui/src/com/appboy/ui/actions/ActionFactory.java ).

我们将考虑如何针对您的用例进行检测,但与此同时,您可以通过多种方式解决问题:

1) 创建一个不是 http 链接的深层链接。如果您的链接看起来像 forsale://mylink?a=b&2=3....等,一切都应该有效。

2) 设置自定义应用内消息管理器监听器:https://documentation.appboy.com/Android/#in-app-message-customization。您可以在我们的 Droidboy 示例应用程序中看到我们如何执行此操作的示例。在您的情况下,您希望返回除 onInAppMessageButtonClicked 和 onInAppMessageClicked 之外的所有内容的默认值,如果它是您的深层链接的格式,您希望自己处理链接。你的票表明你已经尝试过这个,但我建议从“我们在 Android SDK 的 AppboyInAppMessageManager.java (#L608) 中创建的默认方法开始——然后只修改 *clicked 方法。

3) 下载我们的 UI 代码并修改源代码。您可以选择下载 Appboy Android SDK 并修改 ActionFactory 以按照您想要的方式处理您的深层链接。不过,在您要执行此类操作时,解决方案 #2 可能更易于实现和维护。

请告诉我们这些解决方案是否适合您,以及您是否有任何其他意见/问题。

谢谢,

瓦丘玛

关于android - 如何覆盖在应用程序消息中的深层链接中打开 Appboy 网络 Activity 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34453075/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com