无法从webview调用Web服务

时间:2013-11-26 10:32:12

标签: javascript android jquery html5

我无法调用Web服务或未显示任何警报:

我的活动代码:

mWebView = (WebView)findViewById(R.id.webViewRootAciviy);
mWebView.setWebViewClient(new WebViewClient());
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.loadUrl("file:///android_asset/splashscreen.html");

HTML代码:

<html>
    <body>
        this is a demo html file.
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"> 
            $.ajax({
                type: 'GET',
                url: 'http://192.168.11.50/ar/service.svc/ProductCategories?$format=json',
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (data)
                {
                    alert("success");
                },
                error: function (error)
                {
                    alert("error");
                }
            });
        </script>
    </body>
</html>

还获得了Internet许可。请帮我找到我错过的。

修改

我们公司拥有自己的服务器,服务托管在其上。我使用wifi访问互联网,服务器也连接到使用以太网电缆的同一个wifi路由器。

更新:我不知道为什么会这样。由于创建的服务类型,出现了问题。 Web服务是使用WCF Data service创建的,但在使用普通WCF Service再次创建Web服务后,URL现在正常运行。

2 个答案:

答案 0 :(得分:0)

将此应用到您的网络视图。

 webView.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

                view.loadUrl(url);

                return true;
            } else {
                return false;
            }
        }

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

        }
    });

    webView.getSettings().setJavaScriptEnabled(true);

    webView.loadUrl(give your url);

答案 1 :(得分:0)

 // I used this class and my code is working fime at my side please try this may be it will help you 


    public class WebViewActivity extends Activity {
        private WebView webview;
        private static final String TAG = "Main";
        private ProgressDialog progressBar;
        private TextView header_maintext;
        private TextView headeroptiontext;
        private RelativeLayout back;
        private String url_string="http://www.google.com";
        private String header_maintext_string="Your text";  

        /** Called when the activity is first created. */
        @SuppressLint("SetJavaScriptEnabled") @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
             requestWindowFeature(Window.FEATURE_NO_TITLE);
             setContentView(R.layout.webview_layout);


            webview = (WebView)findViewById(R.id.webview01);
            header_maintext= (TextView)findViewById(R.id.header_maintext);
            header_maintext.setText(header_maintext_string);

            headeroptiontext = (TextView)findViewById(R.id.headeroptiontext);
            headeroptiontext.setVisibility(View.GONE);

            WebSettings settings = webview.getSettings();
            settings.setJavaScriptEnabled(true);
            webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
            webview.getSettings().setLoadWithOverviewMode(true);
            webview.getSettings().setUseWideViewPort(true);

              back = (RelativeLayout) findViewById(R.id.back_layout);
              back.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) 
                {
                    // TODO Auto-generated method stub
                    if(webview.canGoBack() == true)
                        {
                            webview.goBack();
                        }
                    else
                        {
                            finish();
                        }
                 }
            });

            final AlertDialog alertDialog = new AlertDialog.Builder(this).create();

            progressBar = ProgressDialog.show(WebViewActivity.this, "My application", "Loading...");

            webview.setWebViewClient(new WebViewClient() {
                public boolean shouldOverrideUrlLoading(WebView view, String url) {

                    view.loadUrl(url);
                    return true;
                }

                public void onPageFinished(WebView view, String url) {
                    Log.i(TAG, "Finished loading URL: " +url);
                    if (progressBar.isShowing()) {
                        progressBar.dismiss();
                    }
                }

                public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

                    Toast.makeText(WebViewActivity.this, "Oh no! " + description, Toast.LENGTH_SHORT).show();
                    alertDialog.setTitle("Error");
                    alertDialog.setMessage(description);
                    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            return;
                        }
                    });
                    alertDialog.show();
                }
            });
            webview.loadUrl(url_string);


        }
        @Override

        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if(event.getAction() == KeyEvent.ACTION_DOWN){
                switch(keyCode)
                {
                case KeyEvent.KEYCODE_BACK:
                    if(webview.canGoBack() == true){
                        webview.goBack();
                    }else{
                        finish();
                    }
                    return true;
                }

            }
            return super.onKeyDown(keyCode, event);
        }
    }