我成功地将FirebaseInAppMessagingClickListener附加到Android Studio中的Android应用程序,但是我无法从“应用程序内消息传递”弹出窗口获取URL导航到应用程序中的WebView活动,而是打开了设备内置浏览器作为覆盖在应用程序上方的位置。该活动甚至都没有打开,甚至在内置浏览器覆盖下也没有打开,同时Log功能中的调试代码在Logcat中可见。
所以我在这里有MyFirebaseInAppMessaging类(扩展服务实现了FirebaseInAppMessagingClickListener)代码:
@Override
public void messageClicked(@NonNull InAppMessage inAppMessage, @NonNull Action action) {
// Determine which URL the user clicked
String url = action.getActionUrl();
Log.d(TAG, "Popup URL :"+url);
// Get general information about the campaign
CampaignMetadata metadata = inAppMessage.getCampaignMetadata();
Log.d(TAG, "metadata :"+metadata);
try{
//starting webview activity here
//url passing to it via intent extra works as expected
startActivity(new Intent(this, webview_base.class).putExtra("web_url", url));
}catch(Exception e){
e.printStackTrace();
}
}
正如您在try-catch块中看到的那样,我试图打开webview活动,并将URL传递给它。
------更新
好吧,我玩过Logcat,在重新启动Android Studio之前,其中缺少一些日志。
结果是由于将“ this”作为第一个参数,所以我得到了NullPointerExceptien启动的Activity。我将尝试找出一些问题,并在发现后立即更新此帖子。