package com.cege.games.release.apple; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Intent; import android.graphics.Rect; import android.net.Uri; import android.util.Log; import android.view.ViewGroup; import android.view.Window; import android.webkit.CookieManager; import android.webkit.WebResourceRequest; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import com.cege.games.release.Constants; import com.cege.games.release.R; public class AppleLoginActivity extends Activity { private static final String TAG = AppleLoginActivity.class.getSimpleName(); @SuppressLint("SetJavaScriptEnabled") @Override public void onCreate(android.os.Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = getIntent(); setContentView(R.layout.activity_web_page); WebView.setWebContentsDebuggingEnabled(true); WebView mWebView = findViewById(R.id.web_view); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setDomStorageEnabled(true); webSettings.setDatabaseEnabled(true); webSettings.setAllowContentAccess(true); webSettings.setAppCacheEnabled(true); webSettings.setBuiltInZoomControls(true); webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true); webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); CookieManager.getInstance().setAcceptThirdPartyCookies(mWebView,true); // get url from intent String funId = intent.getStringExtra("funId"); String url = Constants.APPLE_AUTH_URL + "?response_type=code%20id_token&v=1.1.6&response_mode=form_post&client_id=" + Constants.APPLE_CLIENT_ID + "&scope=" + Constants.APPLE_SCOPE + "&state=" + funId + "&redirect_uri=" + Constants.APPLE_REDIRECT_URI; // show web view mWebView.loadUrl(url); mWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { String url = request.getUrl().toString(); Log.i(TAG, url); if (url.startsWith("cebg")) { // Close the dialog after getting the authorization code Intent myapp_intent = new Intent(Intent.ACTION_VIEW); myapp_intent.setData(Uri.parse(url)); startActivity(myapp_intent); finish(); return true; } return false; } // @Override // public void onPageFinished(WebView view, String url) { // super.onPageFinished(view, url); // Rect displayRectangle = new Rect(); // Window window = getWindow(); // window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle); // ViewGroup.LayoutParams layoutparms = view.getLayoutParams(); // layoutparms.height = displayRectangle.height(); // layoutparms.width = displayRectangle.width(); // view.setLayoutParams(layoutparms); // } }); } }