2017-05-26 49 views
0

我試圖在以Android原生的WebView加載一個URL,但它並沒有呈現CSSAngular的Android的WebView不渲染CSS和角度

CODE:

WebView wvFAQs = (WebView) mFragmentView.findViewById(R.id.wvUrls); 

    Map<String, String> headersMap = new HashMap<>(); 
    headersMap.put(ApiConstants.AUTHORIZATION, BuildConfig.SS_API_AUTH); 
    wvFAQs.setWebViewClient(new WebViewClient() { 

     @SuppressWarnings("deprecation") 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      return false; 
     } 

     @TargetApi(Build.VERSION_CODES.N) 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { 
      return false; 
     } 
    }); 
    wvFAQs.getSettings().setJavaScriptEnabled(true); 
    wvFAQs.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL); 
    wvFAQs.loadUrl(mUrl,headersMap); 

錯誤:

"Uncaught ReferenceError: _ is not defined",

"Uncaught ReferenceError: angular is not defined",

"Uncaught ReferenceError: $ is not defined",

但這個URL在移動瀏覽器中正常工作(chrome &默認的Android瀏覽器)。

當我GOOGLE了這個問題,我才知道我需要在webiew中啓用html5支持功能,這裏是link,但仍然無法正常工作。

誰能告訴我可能是什麼問題?網址或web視圖有問題嗎?

回答

0

我用這個Java代碼加載網頁視圖:

public class MainActivity extends AppCompatActivity { 

private WebView view; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    view = (WebView) this.findViewById(R.id.webView); 
    view.getSettings().setJavaScriptEnabled(true); 
    view.setWebViewClient(new MyBrowser()); 
    view.loadUrl("file:///android_asset/www/index.html"); //try js alert 
    view.setWebChromeClient(new WebChromeClient()); // adding js alert support 
} 

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

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_BACK) && view.canGoBack()) { 
     view.goBack(); //method goback() 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 

我可以說的是,如果你使用jQuery,你需要將它添加到您的資產,因爲從像CDN外部鏈接,如:

 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 

不會加載。

+0

我的網址是公開的,不是本地的。那麼我解決了我的問題,使用android自定義選項卡。 :) –

+1

Okey很高興知道您的問題已修復 – Steven