【问题标题】:How to start an another activity in android after webview has been loaded?加载webview后如何在android中启动另一个活动?
【发布时间】:2015-01-20 11:29:11
【问题描述】:

使用Webview在android中加载web url。基本上在webview中加载登录页面web url。该页面允许用户使用像Facebook和谷歌这样的openid登录。

我的场景是在用户登录后我需要开始另一个活动。到目前为止,在 web 视图中我加载了登录页面 web url。但是现在我需要在 webview 加载后调用另一个活动。所以请帮助我的人我怎么能做到这一点?提前致谢。

【问题讨论】:

  • webView.setWebViewClient(new WebViewClient(){ @Override public void onPageFinished(WebView web, String url) { // Start new activity } });
  • 感谢 arol_123 :) 找到了解决方案 :)

标签: android webview


【解决方案1】:

覆盖 onPageFinished() 并检查您是否在正确的页面上(登录后),否则您的活动也会在登录页面加载时打开。

webView.setWebViewClient(new WebViewClient(){
    @Override
    public void onPageFinished(WebView view, String url) {
        if(url.equals("url after sucessfull login")){
            Intent intent = new Intent(getApplicationContext(), YourActivity.class);
            startActivity(intent);
        }
    }
});

【讨论】:

  • 谢谢达里奥 ..我有一个解决方案。你的代码运行良好 :) 非常感谢。
【解决方案2】:

覆盖WebViewClient的onPageFinished

 private class WebActivity 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);
    //Call another activity
    }
 }

【讨论】:

  • 感谢 Jambaaz :) 找到了解决方案 :)
【解决方案3】:

我不确定您想要获得的确切体验,但一种可能性是您在页面上有一个链接,该链接映射到您的应用的意图过滤器之一 - 单击此链接(或将用户重定向到它)会启动你的意图。您应该可能为此类链接使用自定义方案。

Android Respond To URL in Intent 显示了如何执行此操作的示例。您可能需要弄清楚单击此链接时 UI 会发生什么的一些细节——至少您需要给用户一些反馈。或者对于重定向,您几乎肯定需要绘制一些 UI - chrome 习惯于转到空白页面以进行启动应用程序的重定向,因此如果您不按照您的意图呈现任何 UI(并通过重定向启动它或 window.location)您的用户可能最终会盯着一个空白屏幕。

【讨论】:

    最近更新 更多