Android和iOS中使用的浏览器是如此不同?

时间:2013-12-17 08:46:52

标签: android ios webview

我正在开发一个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);

3 个答案:

答案 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>