java - 用于启动网页的Android侦听器?

  显示原文与译文双语对照的内容
0 0

我有一个简单的web view来加载网站。 一旦加载了网站,我就可以将以下内容焦点/滚动到登录框中:


mWebview.setWebViewClient(new WebViewClient(){

 @Override
 public void onPageFinished(WebView view, String url) {
//TODO Auto-generated method stub
 super.onPageFinished(view, url);
 mWebview.scrollTo(681, 100);

( 我听说onPageFinished已经过时了,但是它在 2.2> 4.4 中工作,所以我现在就离开它) 。

无论如何,当用户实际上登录时,我会调用一些js并将它们转发到另一页。 : (

我可以在他们登录之后再做另一个 onPageFinished,但是我不知道如何开始监视。"。 换句话说,我不能立即启动另一个 onPageFinished,因为它只是自动重定向。

谁有好的建议吗? 我将非常感激 ! : )

编辑:

下面是我的MainActivity.java 类的全部( 。减去导入标题) 。


public class MainActivity extends Activity {

private WebView mWebview ;

@Override
public void onBackPressed() {
 if(mWebview.canGoBack() == true){
 mWebview.goBack();
 }else{
 super.onBackPressed();
 }
}


@Override
public void onCreate(Bundle savedInstanceState) {

 super.onCreate(savedInstanceState);

 mWebview = new WebView(this);

 mWebview.getSettings().setJavaScriptEnabled(true);//enable javascript
 mWebview.getSettings().setBuiltInZoomControls(true);

 if(android.os.Build.VERSION.SDK_INT> = 11) {
 mWebview.getSettings().setDisplayZoomControls(false);
 }

 final Activity activity = this;

 mWebview.setWebViewClient(new WebViewClient() {
 public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
 Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
 }
 });

 mWebview. loadUrl("http://example.com");
 setContentView(mWebview );


 mWebview.setWebViewClient(new WebViewClient(){

 @Override
 public void onPageFinished(WebView view, String url) {
//TODO Auto-generated method stub
 super.onPageFinished(view, url);
 mWebview.scrollTo(681, 100);


 }
 }

 );



}

我想我可能丢失了一个花括号,但现在忽略它,哈哈。 所以,在 mWebview.scrollTo ( 最后一行) 之后,网页已经完成加载,而且它只是在登录页面上冷却。 用户登录后,页面( 明显明显) 开始加载并指向另一个日志登录 URL 。 我想在第二次加载完页面之后,用 if 语句检查 URL 。

这样更有意义? 对不起,我也很困惑,试图解释它。

时间: 原作者:

0 0

通常会有两个单独的url,一个用于页面日志,另一个用于页面中的pre 日志。 你可以有一个 if 语句来检查URL以确保你已经登录,如果有,则在这里处有类似的问题:

在Android应用程序中关闭一个视图视图

所以基本上你只想在你登录后执行一些 JavaScript? 我不知道为什么不能有 if 语句检查是否登录,如果登录,则执行 js 。 类似这样的事情?


wv.setWebViewClient(new WebViewClient() {
 @Override
 public void onPageFinished(WebView view, String url) {
 if (url.contains(getString(R.string.loginURL))){
 super.onPageFinished(view, url);
 mWebview.scrollTo(681, 100);
 }else if(url.contains(getString(R.string.loggedInURL))) {
 wv.loadUrl(js goes here);
 }
 }
}

这将在你的WebView 中每次完成页面加载时执行

...