Android开发-使用WebView拉入带有谷歌地图参考的iframe不会显示自定义标记

Android开发-使用WebView拉入带有谷歌地图参考的iframe不会显示自定义标记,android,google-maps,android-webview,Android,Google Maps,Android Webview,我正在构建一个房地产应用程序,它依赖于从中提取从trulia.com工具页面生成的一些HTML 我遇到的问题是,当我使用WebView拉入此html时,它不会在iframe上显示指向地图上房产位置的标记,也不会显示位于该位置的房屋的价格。我在WebView上启用了javascript,地图显示得很好,只是没有标记 有没有人有过将这些标记用于WebView的经验。请不要告诉我只使用谷歌地图API。这应该是一个简单的解决方案。提前谢谢 更新: 这是我正在使用的html <link rel="s

我正在构建一个房地产应用程序,它依赖于从中提取从trulia.com工具页面生成的一些HTML

我遇到的问题是,当我使用WebView拉入此html时,它不会在iframe上显示指向地图上房产位置的标记,也不会显示位于该位置的房屋的价格。我在WebView上启用了javascript,地图显示得很好,只是没有标记

有没有人有过将这些标记用于WebView的经验。请不要告诉我只使用谷歌地图API。这应该是一个简单的解决方案。提前谢谢

更新:

这是我正在使用的html

<link rel="stylesheet" href="http://css.trulia-cdn.com/css/G26_32/css/pg_truliatool-generate.css"><div class="trulia_tool container300x250 map-search green" style="width: 296px; height: 250px;"><div class="trulia_tool_header"><h6>Map Search</h6></div><iframe height="400px" src="http://synd.trulia.com/tools/map-search/embedded?params%5Blocation%5D=Idaho+Falls%2C+ID&params%5BlocationId%5D=19191&params%5Bagent_id%5D=&params%5Bproperty_status%5D=for+sale&params%5Btitle%5D=Map+Search&params%5Bcolor%5D=green&params%5Bemail%5D=&params%5Buser_url%5D=&params%5Bwidth%5D=300&params%5Bheight%5D=250&params%5Bguid%5D=53ced10419feb" style="height: 185px; overflow: hidden;"><p>Your browser does not support iframes</p></iframe><div class="trulia_tool_footer"><div class="footer-link typeTruncate"><a href="http://www.trulia.com/for_sale/Idaho_Falls,ID/" title="See homes in Idaho Falls, ID" target="_blank">See homes in</a><br /><span>Idaho Falls, ID</span></div><a class="trulia-logo" href="http://www.trulia.com/" title="Trulia" target="_blank"></a></div>
地图搜索您的浏览器不支持iframes


爱达荷瀑布,ID
更新:

以下是logcat消息:

07-24 02:59:30.444 2239-2239/com.example.FranciscoBarreto I/chromium﹕ [信息:library\u loader\u hooks.cc(112)]已启用日志记录:级别=0,默认详细程度=0 07-24 02:59:30.456 2239-2239/com.example.FranciscoBarreto I/BrowserProcessMain﹕ 正在初始化chromium进程,渲染器=0 07-24 02:59:30.528 2239-2264/com.example.FranciscoBarreto W/chromium﹕ [警告:proxy_service.cc(888)]PAC支持已禁用,因为没有系统实现 07-24 02:59:30.652 2239-2239/com.example.FranciscoBarreto D/dalvikvm﹕ GC_FOR_ALLOC freed 290K,3%free 14391K/14788K,暂停13毫秒,总计14毫秒 07-24 02:59:30.760 2239-2239/com.example.FranciscoBarreto I/dalvikvm堆﹕ 对于2536932字节分配,将堆(frag大小写)增加到16.572MB
07-24 02:59:30.808 2239-2248/com.example.FranciscoBarreto D/dalvikvm﹕ GC_FOR_ALLOC freed如果您正在使用包含发布的html的文件设置WebView内容,或者正在传递包含该html的字符串,则可能需要使用
setAllowUniversalAccessFromFileURLs
来允许WebView从页面上运行的脚本向其他资源发出请求

在您的日志中,很明显这就是问题所在:

02:59:42.476 2239-2239/com.example.FranciscoBarreto D/MyApplication﹕ XMLHttpRequest cannot load http://m.trulia.com/_ajax/Location/LocalComps/get_comps/?b=43.487292,-112.046667,43.49601,-112.021262&v=city&c=Idaho%20Falls&s=ID&z=&n=&t=for%20sale. Origin http://synd.trulia.com is not allowed by Access-Control-Allow-Origin. -- From line 0 of http://synd.trulia.com/tools/map-search/embedded?params%5Blocation%5D=Idaho+Falls%2C+ID&params%5BlocationId%5D=19191&params%5Bagent_id%5D=&params%5Bproperty_status%5D=for+sale&params%5Btitle%5D=Map+Search&params%5Bcolor%5D=green&params%5Bemail%5D=&params%5Buser_url%5D=&params%5Bwidth%5D=300&params%5Bheight%5D=250&params%5Bguid%5D=53cc7419073a5
Trulia获取的页面上运行的javascript正在尝试使用Ajax调用检索要显示的位置,给定您所在区域的坐标。这是失败的,因为浏览器不允许对新的“源”地址进行任何网络调用,如果您没有在WebView中加载远程页面,该地址将是任何地址

尝试在webView上使用此调用以允许这些请求通过:

if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) {
    webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
}

如果不知道来自Trulia的html/javascript,这很难说。您应该尝试从WebView记录控制台消息,如文档所示。听起来好像在Android WebView中显示iframe时发生了一些javascript错误。看看你能不能从那里调试一下。谢谢。我对firebug做了一些挖掘,但我想你的建议会更有帮助。仅供参考,我将更新这个问题,以包含我在WebView中使用的html/javascript。看起来不错,我认为您可能会从iframe中的javascript执行中在控制台日志中看到一些重要内容。如果您可以发布一些输出,我们可能可以调试它。此外,您应该查看Logcat,查看WebView或WebKit是否记录了任何可能相关的警告或错误。为您的流程发布任何可能相关的输出。谢谢!看来Trulia的ajax请求没有通过。我在下面添加了一个答案。我还没有测试我的解决方案,但请告诉我它是否有效。谢谢!所以我一直在尝试,但它一直告诉我无法找到setAllowUniversalAccessFromFileURLs方法。我一直在到处寻找原因的答案。有什么想法吗?在AndroidManifest.xml中检查项目的目标API级别。它必须大于或等于果冻豆(API级别16)。