AppLovinWebViewActivity.java 源代码
package com.applovin.sdk;
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.applovin.impl.sdk.k;
import com.applovin.impl.sdk.u;
import com.applovin.impl.sdk.utils.StringUtils;
import java.util.Set;
public class AppLovinWebViewActivity extends Activity {
public static final String EVENT_DISMISSED_VIA_BACK_BUTTON = "dismissed_via_back_button";
public static final String INTENT_EXTRA_KEY_IMMERSIVE_MODE_ON = "immersive_mode_on";
public static final String INTENT_EXTRA_KEY_SDK_KEY = "sdk_key";
private String f7894q;
private WebView f7895r;
private EventListener f7896s;
public interface EventListener {
void onReceivedEvent(String str);
}
class a extends WebViewClient {
final k f7897a;
a(k kVar) {
this.f7897a = kVar;
}
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String str) {
String str2;
Uri parse = Uri.parse(str);
String scheme = parse.getScheme();
String host = parse.getHost();
String path = parse.getPath();
this.f7897a.U0().g("AppLovinWebViewActivity", "Handling url load: " + str);
if ("applovin".equalsIgnoreCase(scheme) && "com.applovin.sdk".equalsIgnoreCase(host) && AppLovinWebViewActivity.this.f7896s != null) {
if (path.endsWith("webview_event")) {
Set<String> queryParameterNames = parse.getQueryParameterNames();
if (queryParameterNames.isEmpty()) {
str2 = "";
} else {
str2 = (String) queryParameterNames.toArray()[0];
}
if (StringUtils.isValidString(str2)) {
String queryParameter = parse.getQueryParameter(str2);
this.f7897a.U0().g("AppLovinWebViewActivity", "Parsed WebView event parameter name: " + str2 + " and value: " + queryParameter);
AppLovinWebViewActivity.this.f7896s.onReceivedEvent(queryParameter);
return true;
}
this.f7897a.U0().l("AppLovinWebViewActivity", "Failed to parse WebView event parameter");
return true;
}
return true;
}
return super.shouldOverrideUrlLoading(webView, str);
}
}
public void loadUrl(String str, EventListener eventListener) {
this.f7896s = eventListener;
WebView webView = this.f7895r;
if (webView == null) {
this.f7894q = str;
} else {
webView.loadUrl(str);
}
}
@Override
public void onBackPressed() {
EventListener eventListener = this.f7896s;
if (eventListener != null) {
eventListener.onReceivedEvent(EVENT_DISMISSED_VIA_BACK_BUTTON);
}
super.onBackPressed();
}
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
String stringExtra = getIntent().getStringExtra(INTENT_EXTRA_KEY_SDK_KEY);
if (TextUtils.isEmpty(stringExtra)) {
u.p("AppLovinWebViewActivity", "No SDK key specified");
} else {
k kVar = AppLovinSdk.getInstance(stringExtra, new AppLovinSdkSettings(getApplicationContext()), getApplicationContext()).coreSdk;
try {
WebView webView = new WebView(this);
this.f7895r = webView;
setContentView(webView);
WebSettings settings = this.f7895r.getSettings();
settings.setSupportMultipleWindows(false);
settings.setJavaScriptEnabled(true);
this.f7895r.setVerticalScrollBarEnabled(true);
this.f7895r.setHorizontalScrollBarEnabled(true);
this.f7895r.setScrollBarStyle(33554432);
this.f7895r.setWebViewClient(new a(kVar));
if (getIntent().getBooleanExtra(INTENT_EXTRA_KEY_IMMERSIVE_MODE_ON, false)) {
getWindow().getDecorView().setSystemUiVisibility(5894);
}
if (StringUtils.isValidString(this.f7894q)) {
this.f7895r.loadUrl(this.f7894q);
return;
}
return;
} catch (Throwable th) {
kVar.U0().h("AppLovinWebViewActivity", "Failed to initialize WebView.", th);
}
}
finish();
}
}