【问题标题】:URL not loading in webview but loaded in browser in android?URL未在webview中加载但在android的浏览器中加载?
【发布时间】:2014-04-02 13:07:08
【问题描述】:

某些类型的 Url 未在我的 Webview 应用中加载,但可以在设备浏览器中加载。以下是在我的代码中不起作用的示例 URL- "http://apps.takeyourapp.com/testApp/staging/index.html"

package com.example.webviewdemo;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.FrameLayout;
import android.widget.LinearLayout.LayoutParams;

public class MainActivity extends Activity {

    WebView webViewPlaceholder;
    String URL = "http://apps.takeyourapp.com/testApp/staging/index.html";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        webViewPlaceholder = (WebView) findViewById(R.id.webholder);
        webViewPlaceholder.getSettings().setJavaScriptEnabled(true);
        webViewPlaceholder
                .setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        webViewPlaceholder.setScrollbarFadingEnabled(true);
        webViewPlaceholder.getSettings().setLoadsImagesAutomatically(true);
        webViewPlaceholder.getSettings().setUseWideViewPort(true);
        webViewPlaceholder.loadUrl(URL);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

【问题讨论】:

    标签: javascript android url webview


    【解决方案1】:

    创建WebViewClient 并加载url 喜欢

     public class myWebClient extends WebViewClient {
        @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    // TODO Auto-generated method stub
                    view.loadUrl(url);
                    return true;
                }
    }
    

    还有setWebViewClient 喜欢:

        webView.setWebViewClient(new myWebClient());
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl("http://apps.takeyourapp.com/testApp/staging/index.html");
    

    并且还将INTERNET权限添加到manifest.xml

    <uses-permission android:name="android.permission.INTERNET" />
    

    【讨论】:

    • 不要从 shouldOverrideUrlLoading 调用 view.loadUrl。只返回false;否则像这样的页面会破坏你的应用程序:jsbin.com/gupug/1/quiet
    【解决方案2】:

    试试这个解决方案。

    public class Main extends Activity {
    
        private WebView mWebview ;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
    
            super.onCreate(savedInstanceState);
    
            mWebview  = new WebView(this);
    
            mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript
    
            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://apps.takeyourapp.com/testApp/staging/index.html");
            setContentView(mWebview );
    
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多