2017-07-15 141 views
0

我正在使用webView加载网页的Android应用程序。我正在使用的网页有一个登录表单,我可以使用该表单登录并执行我的操作。问题是当我关闭应用程序(退出它)并打开我要做的登录应用程序时再次登录。如何保存登录信息,以便在打开我的应用程序时不必登录?如何在WebView应用程序上保存登录信息?

在关闭应用程序之前是否有任何方法可以保存所有信息?

+0

覆盖的onPause和方法的onResume像这里做https://stackoverflow.com/questions/32832845/ webview-is-not-restoring-the-state-after-was-killed-by-the-user –

+0

谢谢它工作:) –

回答

0

您必须先在您的webview上注册JavaScriptInterface。 JavaScriptInterFace可以是一个内部类,如下所示。这个类将有一个函数,你可以从html页面调用(通过javaScript),在这个函数中你可以编写代码来改变活动。

这里是你工作的解决方案:

public class JavascriptInterfaceActivity extends Activity { 
    /** Called when the activity is first created. */ 


    WebView wv; 

    JavaScriptInterface JSInterface; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     wv = (WebView)findViewById(R.id.webView1); 

     wv.getSettings().setJavaScriptEnabled(true); 
     // register class containing methods to be exposed to JavaScript 

     JSInterface = new JavaScriptInterface(this); 
     wv.addJavascriptInterface(JSInterface, "JSInterface"); 

     if(not_logged_in){ 
     wv.loadUrl("file:///android_asset/myPage.html"); 
     } 


    } 


    public class JavaScriptInterface { 
     Context mContext; 

     /** Instantiate the interface and set the context */ 
     JavaScriptInterface(Context c) { 
      mContext = c; 
     } 

     @android.webkit.JavascriptInterface 
     public void login_success() 
     { 
      // save login success. 
     } 
    } 
} 

下面是HTML页面

<html> 
<head> 
<script type="text/javascript"> 
function displaymessage() 
{ 
JSInterface.login_success(); 
} 
</script> 
</head> 

<body> 
<form> 
<input type="button" value="Click me!" onclick="displaymessage()" /> 
</form> 
</body> 
</html> 
+0

感谢您的帮助:) –

+0

@ ShantanuPatil如果它是有用的..然后接受它作为回答。 –

相关问题