在带有Phonegap的iframe中嵌入Google我的地图

时间:2017-01-15 02:39:24

标签: javascript ios cordova google-maps

我正在尝试将地图嵌入到我的Phonegap应用中。我在浏览器中测试时效果很好。应用程序中的所有内容都在Xcode iOS模拟器中完美运行。但是,当我尝试嵌入地图并在模拟器中查看时,地图根本不会出现。附件是相关的html:

<div id="map-container">
    <iframe src="https://www.google.com/maps/d/embed?mid=1WVW2iTQgoHSU1Bm3DkQJtlVYSAU" width="640" height="480" frameborder="none"></iframe>
</div>

这是在Safari中正常工作的页面图片: map in Safari

这是一张未在Xcode的iPhone模拟器中加载地图的页面图片(等待一段时间后): map in Xcode Simulator

1 个答案:

答案 0 :(得分:0)

尝试将其添加到config.xml文件

<allow-navigation href="*"/>

如果仍然无法正常工作,请添加“Content-Security-Policy”框架规则

frame-src * gap://ready 'unsafe-inline' 'unsafe-eval';

我在这种形式下使用动态内容

function AddMap() {
// The Url
var mapUrl = "http://www.google.com/maps/d/embed?mid=1WVW2iTQgoHSU1Bm3DkQJtlVYSAU";
// The iframe, don't forget to use the sandbox options
var iframe = '<iframe src="' + mapUrl + '&ll=38.66174332764711%2C-121.12734470700838&z=18" id="frameMap" width="640" height="480" sandbox="allow-same-origin allow-scripts"></iframe>';
var doc = '<!DOCTYPE html><html><body>' + iframe + '</body></html>';

// Assign it to the div
$("#map-container").html(doc);
// Write to log when is full loaded
$("#frameMap").load(function () {
    console.log("Frame loaded.");
});
}