String call = uri.getHost(); if (CALL_MAYDEEPLINK.equals(call)) { callMayDeepLink(webView, uri); } else if (CALL_DEEPLINK.equals(call)) { if (webView.getUserInteraction()) { callDeepLink(webView, uri); } else { Clog.w(Clog.jsLogTag, Clog.getString(R.string.no_user_interaction, url)); callExternalBrowser(webView, uri); } else { Clog.w(Clog.jsLogTag, Clog.getString(R.string.no_user_interaction, url)); callInternalBrowser(webView, uri); } else { Clog.w(Clog.jsLogTag, Clog.getString(R.string.no_user_interaction, url)); callRecordEvent(webView, uri); } else if (CALL_DISPATCHAPPEVENT.equals(call)) { callDispatchAppEvent(webView, uri); } else if (CALL_GETDEVICEID.equals(call)) { callGetDeviceID(webView, uri); } else if (CALL_SETMRAIDREFRESHFREQUENCY.equals(call)) { callSetMraidRefreshFrequency(webView, uri); } else { Clog.w(Clog.baseLogTag, "ANJAM called with unsupported function: " + call);
private static void loadResult(WebView webView, String cb, List<Pair<String , String>> paramsList) { StringBuilder params = new StringBuilder(); params.append("cb=").append(cb != null ? cb : "-1"); if (paramsList != null) { for (Pair<String, String> pair : paramsList) { if ((pair.first != null) && (pair.second != null)) { params.append("&").append(pair.first) .append("=").append(Uri.encode(pair.second)); } } } String url = String.format("javascript:window.sdkjs.client.result(\"%s\")", params.toString()); injectJavaScript(url, webView); }
@Test public void testANJAMDispatchAppEvent() { String eventName = "testEvent"; String eventData = "testData"; String anjamCall = String.format("anjam://DispatchAppEvent?event=%s&data=%s", eventName, eventData); ANJAMImplementation.handleUrl(mockAdWebView, anjamCall); MockAdDispatcher mockAdDispatcher = (MockAdDispatcher) mockAdWebView.adView.getAdDispatcher(); System.out.println("Verifying app event callback"); assertTrue(mockAdDispatcher.appEventOccurred); System.out.println("App event received!"); System.out.println("Validating event name"); assertEquals(mockAdDispatcher.eventName, eventName); System.out.println("event name validated!"); System.out.println("Validating event data"); assertEquals(mockAdDispatcher.eventData, eventData); System.out.println("event data validated!"); }
ANJAMImplementation.handleUrl(AdWebView.this, url); return true; } else if (url.startsWith("appnexuspb://")) {