2017-04-24 85 views
0

我想要使用WebView在我的andoird應用上加載第三方url(http://domain1.com)。該網址的iframe與其他網域(http://domain2.com)有一個視頻播放器。頁面加載成功,但播放視頻時不加載(當設備的api級別爲< 21),並且android studio控制檯顯示下一條消息:阻止源「http://domain2.com」的幀訪問源於「http://www.domain1.com」的幀「協議,域和端口必須匹配。當設備的api級別> = 21時可以正常工作。Android WebView混合內容不在api級別加載<21

的WebView代碼:

WebView myWebView = (WebView) view.findViewById(R.id.webView); 

myWebView.getSettings().setJavaScriptEnabled(true); 
myWebView.getSettings().setAllowUniversalAccessFromFileURLs(true); 
myWebView.getSettings().setAllowFileAccessFromFileURLs(true); 

myWebView.setWebChromeClient(new WebChromeClient()); 

myWebView.loadUrl(urlWin); 

if (Build.VERSION.SDK_INT >= 21) { 
    myWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE); 
} else { 
    // Code for Build.VERSION.SDK_INT < 21 
} 

如何啓用API級別< 21的WebView混合內容?

的網址是:http://www.winsports.co/liga-aguila-2017-i/multimedia/galeria-compactos/repasa-aqui-los-goles-del-triunfo-de-cali-sobre-junior-72384

回答

0

報價從developer.android.com

使用setMixedContentMode(INT)在此模式下,網頁視圖將嘗試與現代網絡瀏覽器方面的做法兼容混合的內容。一些不安全的內容可能被允許通過安全來源加載,而其他類型的內容將被阻止。內容的類型被允許或阻止可能會將發佈更改爲發佈,並且沒有明確定義。此模式旨在供應用程序使用,這些應用程序無法控制呈現的內容,但希望在合理安全的環境中運行。爲了獲得最高的安全性,建議應用程序使用MIXED_CONTENT_NEVER_ALLOW。

代碼示例:

webView .getSettings() .setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);

+0

請解釋一下代碼的作用 – webo80

+0

至少說明有什麼區別,如果有的話。 –

+1

@Mr。 B我已經從開發人員網站添加了一些說明,希望現在可以回答這個問題 –

相關問題