我在覆盖 Appboy 深层链接中的点击行为时遇到问题
请找到以下数据
1- 在 BaseActivity 中注册 Appboy,这是所有应用程序活动的父活动
@Override
protected void onResume() {
AppboyInAppMessageManager.getInstance().registerInAppMessageManager(this);
Appboy.getInstance(this).requestInAppMessageRefresh();
}
@Override
protected void onPause() {
AppboyInAppMessageManager.getInstance().unregisterInAppMessageManager(this);
}
2-在清单文件中添加接收器,如下所示
<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 网络活动
我需要重写此行为,以便能够获取我在应用程序消息中发送的链接并从中解析一些参数并将使用定向到我的应用程序内的活动
我试过以下
- 从清单文件中删除默认的应用程序男孩网络活动 /// 应用程序崩溃
- 实现 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()));
}
}