简体   繁体   English

应用启动网络浏览器以加载网页,而不是在android中加载WebView

[英]App launch web browser for loading webpage instead of loading in WebView in android

In Gingerbread It works fine.But in jellybean It sometime launch webbrowser and sometime load webpage in WebView. 在Gingerbread中,它工作正常。但是在豆形软糖中,它有时会启动Web浏览器,有时会在WebView中加载网页。 I did not figure out why it is happened.I checked out this problem in many sites and of course in stackoverflow, but i was undone.Please help me. 我没有弄清楚为什么会发生这种情况。我在很多站点都检查了这个问题,当然也在stackoverflow中检查了一下,但是我撤消了,请帮助我。

My code is.. 我的代码是..

public class CityTouchFragment extends Fragment {
View v;
static WebView webView;
TextView tv;
public static int track = 1;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    v = inflater.inflate(R.layout.webload, null);
    webView = (WebView) v.findViewById(R.id.load);
    tv = (TextView) v.findViewById(R.id.loading);

    ConnectionDetector connectionDetector = new ConnectionDetector(
            getActivity());

    if (connectionDetector.isConnectingToInternet() == true)

    {

        new DownloadTask()
                .execute("Any parameters my download task needs here");
    }

    else {
        Toast.makeText(getActivity(), "Check Internet Connrction",
                Toast.LENGTH_SHORT).show();
        FragmentTabHost tabHost = Tabactivty.self.mTabHost;

        tabHost.setCurrentTab(0);
    }
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    webView.requestFocus(View.FOCUS_DOWN);
    webView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
            case MotionEvent.ACTION_UP:
                v.requestFocusFromTouch();
                break;
            }
            return false;
        }

    });

    return v;
}

private class DownloadTask extends AsyncTask<String, Void, Object> {
    @Override
    protected void onPreExecute() {

    }

    protected Object doInBackground(String... args) {
        Log.i("MyApp", "Background thread starting");

        webView.getSettings().setJavaScriptEnabled(true);
        webView.requestFocus(View.FOCUS_DOWN);
        webView.loadUrl("http://www.citytouch.com.bd/mobile");

        webView.setWebViewClient(new MyWebViewClient());

        return "replace this with your data object";
    }

    protected void onPostExecute(Object result) {

        webView.requestFocus(View.FOCUS_DOWN);
        webView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                case MotionEvent.ACTION_UP:
                    v.requestFocusFromTouch();
                    break;
                }
                return false;
            }

        });

    }

}

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

        return true;
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        System.out.println("on finish");

        tv.setVisibility(View.GONE);

        track = 2;
    }
}

} }

As far as I can see, this code should not open webBrowser. 据我所知,此代码不应打开webBrowser。 It should load all data in webView. 它应该将所有数据加载到webView中。
To open any link in Web Browser use this code: 要在Web浏览器中打开任何链接,请使用以下代码:

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(browserIntent);

Put webView.setWebViewClient(new WebViewClient()); webView.setWebViewClient(new WebViewClient()); before loadUrl("") . loadUrl("")

When parse the string http: the default webClient open the browser. 解析字符串http:时 ,默认的webClient打开浏览器。 I don't know why!!. 我不知道为什么!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM