Страница Google "Спасибо" имеет уникальный div .freebirdFormviewerViewResponseConfirmContentContainer
.
Путем добавления javascript в веб-просмотр при загрузке страницы, мы можем обнаружить наличие этого div и вызвать метод из нашего JavascriptInterface для уведомления собственного кода о том, что форма была отправлена:
Примечание: это работает только в том случае, если форма Google загружается непосредственно в веб-просмотр. Это не работает, если форма Google встроена в веб-сайт с помощью iframe (я обнаружил, что невозможно обнаружить это событие отправки в этом случае).
(Java код в качестве примера)
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
{
...
mWebView.setWebViewClient(new WebViewClient()
{
@Override
public void onPageFinished(WebView view, String url)
{
String js =
"( " +
"function() { " +
"if(document.getElementsByClassName('freebirdFormviewerViewResponseConfirmContentContainer').length > 0) {" +
WEBVIEW_INTERFACE_NAME + ".googleFormSubmitted();" +
"}" +
"}) " +
"()";
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT)
mWebView.evaluateJavascript(js, null);
else
mWebView.loadUrl("javascript:" + js);
}
}
);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
mWebView.addJavascriptInterface(new WebViewInterface(getContext()), WEBVIEW_INTERFACE_NAME);
}
}
private class WebViewInterface
{
Context mContext;
WebViewInterface(Context context)
{
mContext = context;
}
@JavascriptInterface
public void googleFormSubmitted()
{
// Do what you need
}
}