Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以将登录信息从webview传递到android活动?_Javascript_Android_Webview_Fingerprint - Fatal编程技术网

Javascript 是否可以将登录信息从webview传递到android活动?

Javascript 是否可以将登录信息从webview传递到android活动?,javascript,android,webview,fingerprint,Javascript,Android,Webview,Fingerprint,我有一个网站,它是通过网络视图加载到android应用程序中的。每当启动应用程序时,在启动屏幕后加载webview并显示登录页面(在webview中),此页面包含两个文本框,一个用于用户名,另一个用于密码。成功登录后,会话启动,网页加载良好。 现在,我想将登录信息,即用户名和密码从该登录页面(在webview中显示)获取到我的android活动中 获取此登录信息的原因: 实际上,我想获取这些值,因为我需要添加指纹身份验证选项以及用户名和密码。我想为用户提供两个选项,即使用用户名/密码或指纹登录

我有一个网站,它是通过网络视图加载到android应用程序中的。每当启动应用程序时,在启动屏幕后加载webview并显示登录页面(在webview中),此页面包含两个文本框,一个用于用户名,另一个用于密码。成功登录后,会话启动,网页加载良好。 现在,我想将登录信息,即用户名和密码从该登录页面(在webview中显示)获取到我的android活动中

获取此登录信息的原因: 实际上,我想获取这些值,因为我需要添加指纹身份验证选项以及用户名和密码。我想为用户提供两个选项,即使用用户名/密码或指纹登录

我怎样才能达到这种情况?据我所知,通过webview向用户提供这两个选项是不可能的,因为只有本机android应用程序才能实现这一点。所以请指导我

我尝试了许多解决办法,但都没有成功


public class PrimeLedgeWeb extends AppCompatActivity {

    WebView webView;
    String imei,url;
    boolean isConnected;
    WP10ProgressBar progressBar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_prime_ledge_web);

                                        webView=(WebView)findViewById(R.id.webViewPrime);

        progressBar = (WP10ProgressBar) findViewById(R.id.wp7progressBar);
        progressBar.showProgressBar();
        webView.setWebViewClient(new CustomWebViewClient());

        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setDomStorageEnabled(true);
        webView.setOverScrollMode(WebView.OVER_SCROLL_NEVER);

                                        if (Connection.checkConnection(getApplicationContext()))
                                        {
                                            initGUI();
                                        }
                                        else {
                                            Toast.makeText(PrimeLedgeWeb.this, "Make sure to connect to Internet before proceeding!", Toast.LENGTH_SHORT).show();
                                        }

                                    }

                                    public void initGUI() {
                                        TelephonyManager TelephonyMgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
                                        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
                                            ActivityCompat.requestPermissions( this, new String[] {  android.Manifest.permission.READ_PHONE_STATE  }, 0);
                                        }
                                        else {
                                            imei = TelephonyMgr.getDeviceId();
                                        }


                                        IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
                                        PrimeLedgeWeb.NetworkChangeReceiver receiver = new PrimeLedgeWeb.NetworkChangeReceiver();
                                        registerReceiver(receiver, filter);


                                        NetworkDetaction networkDetaction = new NetworkDetaction(this);
                                        if (networkDetaction.isNetworkConnected()) {
                                            final URLRequest urlRequest = new URLRequest(PrimeLedgeWeb.this);

                                            if (urlRequest.url==null)
                                            {
//                                                url = "http://204.93.216.33/PrimeTex/";
                                                url = "http://204.93.216.33/PrimeTex/Home/DeviceId?DevId=" + imei;

                                                if (new NetworkDetaction(PrimeLedgeWeb.this).isNetworkConnected()) {
                                                    if (urlRequest.url == null) {
                                                        webView.loadUrl(url);

                                                        webView.getSettings().setLoadsImagesAutomatically(true);
                                                        webView.getSettings().setJavaScriptEnabled(true);
                                                        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

                                                        webView.setWebViewClient(new WebViewClient(){
                                                            @Override
                                                            public boolean shouldOverrideUrlLoading(WebView view, String Url) {
                                                                if (Url != url) {
                                                                    webView.loadUrl(Url);
                                                                }
                                                                return true;
                                                            }

                                                            @Override
                                                            public void onPageStarted(WebView view, String url, Bitmap favicon) {

                                                                webView.setVisibility(webView.INVISIBLE);
                                                            }

                                                            @Override
                                                            public void onPageFinished(final WebView view, String Url) {

                                                                progressBar.postDelayed(new Runnable() {
                                                                    @Override
                                                                    public void run() {
                                                                        progressBar.setVisibility(View.GONE);
                                                                       // progressBar.hideProgressBar();
                                                                    }
                                                                }, 1000);

                                                                webView.postDelayed(new Runnable() {
                                                                    @Override
                                                                    public void run() {
                                                                        view.setVisibility(webView.VISIBLE);
                                                                    }
                                                                }, 1000);


                                                                super.onPageFinished(view, Url);
                                                                if (!new NetworkDetaction(PrimeLedgeWeb.this).isNetworkConnected()) {
                                                                    if (!Url.endsWith("loginui.aspx")) {
                                                                        webView.setVisibility(View.GONE);
                                        Toast.makeText(PrimeLedgeWeb.this, "Not connected to internet",
                                                Toast.LENGTH_SHORT).show();
                                    }
                                    else
                                        {
                                        webView.setVisibility(View.GONE);
                                    }
                                }
                                                                if (new NetworkDetaction(PrimeLedgeWeb.this).isNetworkConnected()) {
                                                                    webView.postDelayed(new Runnable() {
                                                                        @Override
                                                                        public void run() {
                                                                            webView.setVisibility(View.VISIBLE);
                                                                        }
                                                                    }, 1000);
                                                                }
                            }
                        });
                    }
                }
            }

        }
        else
            {
            Toast.makeText(this, "Check Network Connection", Toast.LENGTH_SHORT).show();
        }
    }

    private class CustomWebViewClient extends WebViewClient {

        @Override
        public void onPageStarted(WebView webview, String url, Bitmap favicon) {
//            progressBar.showProgressBar();
//            webview.setVisibility(webview.INVISIBLE);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
//
//            //progressBar.setVisibility(View.GONE);
//            progressBar.hideProgressBar();
//
//            view.setVisibility(webView.VISIBLE);
            super.onPageFinished(view, url);

        }
    }

    public class NetworkChangeReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(final Context context, final Intent intent) {
            //Log.v(LOG_TAG, "Receieved notification about network status");
            isNetworkAvailable(context);
        }

        public boolean isNetworkAvailable(Context context) {
            ConnectivityManager connectivity = (ConnectivityManager)
                    context.getSystemService(Context.CONNECTIVITY_SERVICE);
            if (connectivity != null) {
                NetworkInfo[] info = connectivity.getAllNetworkInfo();
                if (info != null) {
                    for (int i = 0; i < info.length; i++) {
                        if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                            isConnected = true;
                            if (isConnected) {
                            }
                            return true;
                        }
                        isConnected = false;
                    }
                } else {
                    isConnected = false;
                }
            }
            return isConnected;
        }
    }
}

公共类PrimeLedgeWeb扩展了AppCompatActivity{
网络视图;
字符串imei,url;
布尔不连通;
WP10ProgressBar progressBar;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u prime\u ledge\u web);
webView=(webView)findViewById(R.id.webViewPrime);
progressBar=(WP10ProgressBar)findViewById(R.id.wp7progressBar);
progressBar.showProgressBar();
setWebViewClient(新的CustomWebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.setOverScrollMode(webView.OVER\u SCROLL\u NEVER);
if(Connection.checkConnection(getApplicationContext()))
{
initGUI();
}
否则{
Toast.makeText(PrimeLedgeWeb.this,“在继续之前确保连接到Internet!”,Toast.LENGTH\u SHORT.show();
}
}
public void initGUI(){
TelephonyManager TelephonyMgr=(TelephonyManager)getSystemService(电话服务);
if(ActivityCompat.checkSelfPermission(this,Manifest.permission.READ\u PHONE\u STATE)!=PackageManager.permission\u已授予){
ActivityCompat.requestPermissions(这是新字符串[]{android.Manifest.permission.READ_PHONE_STATE},0);
}
否则{
imei=TelephonyMgr.getDeviceId();
}
IntentFilter筛选器=新的IntentFilter(ConnectionManager.CONNECTIVITY_操作);
PrimeLedgeWeb.NetworkChangeReceiver=新PrimeLedgeWeb.NetworkChangeReceiver();
寄存器接收器(接收器、过滤器);
NetworkDetaction NetworkDetaction=新的NetworkDetaction(此);
if(networkDetaction.isNetworkConnected()){
最终URLRequest URLRequest=新的URLRequest(PrimeLedgeWeb.this);
if(urlRequest.url==null)
{
//url=”http://204.93.216.33/PrimeTex/";
url=”http://204.93.216.33/PrimeTex/Home/DeviceId?DevId=“+imei;
if(新建NetworkDeAction(PrimeLedgeWeb.this).isNetworkConnected()){
if(urlRequest.url==null){
loadUrl(url);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setScrollBarStyle(视图.滚动条\u内部\u覆盖);
setWebViewClient(新的WebViewClient(){
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串Url){
如果(Url!=Url){
loadUrl(Url);
}
返回true;
}
@凌驾
public void onPageStarted(WebView视图、字符串url、位图favicon){
setVisibility(webView.INVISIBLE);
}
@凌驾
公共void onPageFinished(最终WebView视图,字符串Url){