使用StageWebView.loadString()在AIR for iOS上显示Google地图

我正在尝试使用StageWebView来显示使用Javascript API生成的Google Maps地图。 有没有一个原因,为什么它不会在iOS上呈现? 它适用于Android和AIR模拟器,但不适用于iOS设备。 我也可以查看在Safari中生成的HTML,这使得它更加怪异。

HTML示例(我dynamic生成这个应用程序,不是它重要):

 <!DOCTYPE HTML> <html style="width:100%; height:100%; margin: 0; padding: 0;"> <head> <title></title> <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(e){ var myLatlng = new google.maps.LatLng( 0,0); var mapOptions = { zoom: 18, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROADMAP, mapTypeControl: true, zoomControl: true, zoomControlOptions: { style: google.maps.ZoomControlStyle.DEFAULT } } var map = new google.maps.Map(document.getElementById("maps") , mapOptions); geocoder = new google.maps.Geocoder(); geocoder.geocode( { "address": "90 South Kyrene, Chandler, AZ 85226" }, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { map.setCenter(results[0].geometry.location); var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); } }); }); </script> </head> <body style="width:100%; height:100%; margin: 0; padding: 0;"> <div id="maps" style="width:100%; height:100%; margin: 0; padding: 0;"></div> </body> </html> 

我使用StageWebView.loadString( html, "text/html" );加载它StageWebView.loadString( html, "text/html" ); 。 任何想法为什么它不呈现? 加载url似乎工作(所以我会尝试将HTML保存到磁盘并加载,接下来)罚款,只是不loadString。

在iOS 6和iOS 7以及AIR 3.8和3.9上进行testing

编辑:作为后续行动,将HTML文件保存到磁盘,然后通过StageWebView.loadURL()加载,工作得很好。 仍然好奇,为什么通过loadString()加载它不起作用,但。

我认为这已经与iOS JavaScript沙盒和StageWebView API的工作方式有关。 前一段时间,我试图做类似的Twitter服务跳过引脚身份validation,但似乎ios不会让你从你的应用程序执行JavaScript。

你可以尝试使用本地的webview扩展来解决这个问题。 stagewebviewbridge有一个loadString方法,应该与JavaScript一起工作。

您可以使用本机扩展来进行地图浏览。 如果你的应用程序是ios独占的,你可以看看: air-maps-ane或者你可以使用MapQuest API 。 我已经在android / ios应用程序中使用,工作得很好。

尝试删除<!DOCTYPE HTML>标记我有同样的问题之前,删除<!DOCTYPE HTML>页面正确呈现