请注意,问题可能与 Android 10 有关
我试图从 myInAppMessagingService 启动一个新的 Activity,但我每次都得到空指针异常 un startActivitys 上下文参数。
所以这是我的服务代码:
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import androidx.annotation.NonNull;
import com.google.firebase.inappmessaging.FirebaseInAppMessagingClickListener;
import com.google.firebase.inappmessaging.model.Action;
import com.google.firebase.inappmessaging.model.CampaignMetadata;
import com.google.firebase.inappmessaging.model.InAppMessage;
import viaapp_v2.systems.webview_activity.webview_base;
public class MyFirebaseInAppMessaging extends Service implements FirebaseInAppMessagingClickListener {
String TAG = "MyFirebaseInAppMessaging";
@Override
public IBinder onBind(Intent intent) {
throw new UnsupportedOperationException("Not yet implemented");
}
@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{
startActivity(
new Intent(MyFirebaseInAppMessaging.this, webview_base.class)
.putExtra("web_url", url)
);
}catch(Exception e){
e.printStackTrace();
}
}
}
由于第一个参数上下文,我在“startActivity(..)”行中出现错误。我尝试了所有方法 - getApplicationContext()、MyFirebaseInAppMessaging.this 或只是简单的“this”,但没有任何效果。
我阅读了Android 开发人员提供的限制,但我想不出任何新内容。
否则,该应用程序可以完美运行 - webview_base 类可以正常工作,其他所有内容也可以正常工作,包括 myInAppMesaging Services 侦听器。它只是 startActivity() 中的一个上下文,它阻止了我。
谢谢你的帮助。
--9月7日更新
在玩弄权限后,标志等。我注意到没有任何效果。较新的 Android 操作系统会在应用程序上过度打开网络,但较旧的 Android 操作系统只会崩溃而没有任何具体的崩溃报告。这很奇怪。