Я пытаюсь реализовать android API обработки завершения для WebView в проекте Unity. Я создал плагин java, который переопределяет функцию OnRenderProcessDestroyed из WebClient.
Я вызываю функцию через C#, могу создать ее экземпляр, инициализировать ее и передать ей текущий UnityAndroidActivity. Однако OnRenderProcessDestroyed никогда не вызывается при принудительном использовании WebView cra sh.
public class WebViewCrashHandler extends WebViewClient {
private Activity m_unityActivity;
@SuppressLint("StaticFieldLeak")
private static WebViewCrashHandler s_instance = null;
public static WebViewCrashHandler Instance(){
Log.e("MY_APP_TAG","PLUGIN INSTANCE CREATED");
if (s_instance == null)
s_instance = new WebViewCrashHandler();
return s_instance;
}
public void Initialise(Activity a) {
Log.e("MY_APP_TAG", "PLUGIN INITIALISED");
m_unityActivity = a;
}
@Override
public boolean onRenderProcessGone(WebView view, RenderProcessGoneDetail detail){
super.onRenderProcessGone(view, detail);
Log.e("MY_APP_TAG", "onRenderProcessGone triggered!");
if (!detail.didCrash()){
//Destroy view
//Recreate view
}
//Renderer crashed because of an internal error, such as memory access violation.
Log.e("MY_APP_TAG", "The WebView rendering process crashed!");
return false;
}
}
ВОПРОС:
Из прочтения документации по onRenderProcessDestroyed и его параметров Я понимаю, что он вызывает автоматически, когда процесс рендеринга уничтожен. Однако означает ли наличие события в плагине, что оно не будет запущено? Любая идея, где я мог бы пойти не так здесь.
Спасибо.