【发布时间】:2018-08-30 07:57:58
【问题描述】:
Ajax 在 UIWebView 中完成加载时是否可以收到通知?在 Android 中,我可以这样做:
@SuppressLint("SetJavaScriptEnabled")
private void setUpWebView() {
webview = view.findViewById(R.id.webView);
webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(new JavaScriptInterface(), "HtmlViewer");
webview.setWebViewClient(new LoginWebView());
webview.loadUrl("EXAMPLE URL");
}
private class LoginWebView extends WebViewClient {
@SuppressLint({"JavascriptInterface"})
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:(function(){" +
"\n" + " jQuery(document).ajaxComplete(function(event, request, settings){" +
"\n" + " var responseCode = JSON.parse(request.responseText).result.responseCode;" +
"\n" + " window.HtmlViewer.ajaxResponse(settings.url, responseCode);" +
"\n" + " });" +
"\n" + "})();";);
}
}
private class JavaScriptInterface {
@JavascriptInterface
public void ajaxResponse(String url, String responseCode) {
// Gets notified when Ajax finished loading
}
}
现在每次 Ajax 完成加载时,都会调用我的 ajaxResponse 方法。是否也可以在 UIWebView 中实现?
【问题讨论】: