Я новичок в android разработке. Сейчас я занимаюсь разработкой аутентификации на основе firebase, используя android собственный веб-просмотр. Я попытался создать новое веб-представление (отображается в новом приложении) и успешно подключить сайт авторизации в новом веб-представлении. но я не могу дать некоторую информацию, которую я получил из нового веб-просмотра в мое приложение. Как я могу предоставить информацию, полученную из нового веб-вида, моему приложению?
Ниже приведен мой код.
import androidx.appcompat.app.AppCompatActivity;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Message;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
private WebView mv;
public Dialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mv = findViewById(R.id.webView);
mv.loadUrl("");
WebSettings mvs = mv.getSettings();
mvs.setJavaScriptEnabled(true);
mvs.setJavaScriptCanOpenWindowsAutomatically(false);
mvs.setUseWideViewPort(false);
mvs.setCacheMode(WebSettings.LOAD_NO_CACHE);
mvs.setBuiltInZoomControls(false);
mvs.setSupportZoom(false);
mvs.setJavaScriptCanOpenWindowsAutomatically(true);
mvs.setSupportMultipleWindows(true);
mvs.setDomStorageEnabled(true);
mv.setWebChromeClient(new MyWebChromeClient());
mv.setWebViewClient(new WebViewClientClass());
}
@Override
public boolean onKeyDown (int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mv.canGoBack()) {
mv.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
private class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
WebView newWebView = new WebView(MainActivity.this);
WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(newWebView);
resultMsg.sendToTarget();
newWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setData(Uri.parse(url));
startActivity(browserIntent);
return true;
}
});
return true;
}
}
private class WebViewClientClass extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
@Override
public void onReceivedError(final WebView view, int errorCode, String description,
final String failingUrl) {
// super.onReceivedError(view, errorCode, description, failingUrl);
Context mContext = getApplicationContext();
}
}
}