我在覆盖Appboy deeplink中的On Click Behavior时遇到了问题
请查找以下数据
1-在BaseActivity中注册Appboy,这是所有应用程序活动的父活动
@Override protected void onResume() { AppboyInAppMessageManager.getInstance().registerInAppMessageManager(this); Appboy.getInstance(this).requestInAppMessageRefresh(); } @Override protected void onPause() { AppboyInAppMessageManager.getInstance().unregisterInAppMessageManager(this); }
2-如下所示,在Manifest File中添加接收器
知道我可以使用应用程序男孩仪表板发送应用程序消息,并收到消息,但当我点击消息时它打开appboy web活动与链接
我需要覆盖此行为,以便能够获取我在In app消息中发送的链接并从中解析一些参数并将其用于我的app中的活动
我尝试了以下内容
从清单文件中删除默认的app boy web活动///应用程序崩溃
实现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())); } }
小智.. 5
问题的根源在于我们根据URI的模式区分深层链接和http链接,因此http(和其他一些方案)链接被检测为Web链接,其他格式被视为深层链接(请参阅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)中创建的默认值开始 - 然后只修改*点击的方法.
3)下载我们的UI代码并修改源代码.您可以选择下载Appboy Android SDK并修改ActionFactory以按您希望的方式处理您的深层链接.虽然,在你要做这样的事情的时候,解决方案#2可能会更好地实现和维护.
如果其中一种解决方案适合您,如果您有任何其他意见/问题,请告诉我们.
谢谢,
Waciuma
问题的根源在于我们根据URI的模式区分深层链接和http链接,因此http(和其他一些方案)链接被检测为Web链接,其他格式被视为深层链接(请参阅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)中创建的默认值开始 - 然后只修改*点击的方法.
3)下载我们的UI代码并修改源代码.您可以选择下载Appboy Android SDK并修改ActionFactory以按您希望的方式处理您的深层链接.虽然,在你要做这样的事情的时候,解决方案#2可能会更好地实现和维护.
如果其中一种解决方案适合您,如果您有任何其他意见/问题,请告诉我们.
谢谢,
Waciuma