我正在开发一个Android应用程序,我的同事正在为iOS开发相同的应用程序。在此应用程序中需要加载位于互联网上的360全景图。在iOS应用程序中,HTML5字符串用于包装全景图的URL,当我在Android WebView中使用相同的字符串时,WebView会正常加载它,该URL将无法打开。所以我的问题是这两个OS之间的webiews如此不同?我应该启用一些webview设置吗?我会把你的代码和字符串发给你,以防你能用它做些什么。谢谢你提前
webView2.getSettings().setJavaScriptEnabled(true);
webView2.getSettings().setDomStorageEnabled(true);
String target = "<html>
<head>
<style type=\"text/css\">
iframe {position:absolute; }
body {background-color:#000; margin:0;}
</style>
</head>
<body>
<iframe width=\"100%%\" height=\"100%%\"
src=\"%http://360photo.gr/panorama/ipad/antalki/antalki_2.html\" frameborder=\"0\" allowfullscreen></iframe> </body> </html>" ;
我可能在某处弄乱了String并且没有注意到这是在iOS中运行的String
NSString *videoHTML = [NSString stringWithFormat:@"\
<html>\
<head>\
<style type=\"text/css\">\
iframe {position:absolute; }\
body {background-color:#000; margin:0;}\
</style>\
</head>\
<body>\
<iframe width=\"100%%\" height=\"100%%\" src=\"%@\" frameborder=\"0\" allowfullscreen></iframe>\
</body>\
</html>", self.urlToPlay];
这就是我加载数据的方式:
webView2.loadData(target, "text/html", null);
答案 0 :(得分:1)
您为Android准备的网址中有一个额外的“%”符号。只需将其从“src”的值中删除,它也应该为Android浏览器打开。
我只是将下面的代码放在sample.html文件中并加载到webview中。它工作得很好并且完美地加载了图像。似乎问题在于转义字符和iframe的宽度和高度属性中的额外“%”符号。
<html>
<head>
<style type="text/css">
iframe {position:absolute; }
body {background-color:#000; margin:0;}
</style>
</head>
<body>
<iframe width="100%" height="100%"
src="http://360photo.gr/panorama/ipad/antalki/antalki_2.html" frameborder="0" allowfullscreen>
</iframe>
</body>
</html>
答案 1 :(得分:0)
所以根据这个link我不能做我打算做的事情,至少不是KitKat,是正确的还是我误读了什么?
答案 2 :(得分:0)
您是否已将Android权限添加到Android Manifest?
<manifest xlmns:android...>
...
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
修改
在为您的网页添加一些更加可靠的CSS并让它在一个示例应用程序上工作时,有一个小问题。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<title>Demo</title>
<style>
html, body {
padding: 0;
margin: 0;
}
html {
min-width: 100%;
min-height: 100%;
}
body {
width: 100%;
height: 100%;
background-color: red;
}
</style>
</head>
<body>
<iframe width="100%" height="100%"
src="http://360photo.gr/panorama/ipad/antalki/antalki_2.html" frameborder="0" allowfullscreen>
</iframe>
</body>
</html>