0

我正在一个可以将推文发布到 twitter 的 android 应用程序中工作,并且我正在使用 Web View 小部件进行操作。如果用户未登录,它将转到登录屏幕,如果它是登录用户,它将转到推文页面。我的要求是在我的应用程序发推文后,它应该返回到我的应用程序。我如何通过 WebView 处理这种情况。我将如何从我的 WebView 获取重定向 url。

请帮我。

请查看我的代码:

public class TestTwittershareActivity extends Activity {
    WebView webview;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        webview = (WebView) findViewById(R.id.webview);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.loadUrl("http://www.twitter.com?status=");
        webview.setWebViewClient(new HelloWebViewClient());
    }

    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
            webview.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);

            return true;
        }
    }
}
4

1 回答 1

3

如果我正确理解您的问题,您需要一种方法来检查用户是否已完成发送推文。你最好的办法是检查你的 web 视图中加载的 url。希望这个 url 有某种迹象表明推文已经完成(也许在状态部分?)。要检查 url,您可以使用您已经创建的 HelloWebViewClient 类并覆盖它的 onPageFinished 方法。例如这样的:

@Override
public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    if (url.contains("status=DONE")) {
        // start your activity here
    }
}

如果您无法根据 url 检测到用户已完成,那么事情就会复杂得多。在这种情况下,您可以尝试添加允许您提取已加载页面的 html 的javascript,并且您必须解析 html 以查找用户是否完成的线索。

于 2012-04-26T19:02:35.033 回答