菜鸟教程小白 发表于 2022-12-12 16:49:36

ios - Meteor GoogleMaps.load() 在 iOS 上无法使用 Iron


                                            <p><p>我正在尝试使用 Meteor 在页面上加载带有标记的简单 map 。我正在使用 <a href="https://github.com/dburles/meteor-google-maps" rel="noreferrer noopener nofollow">GoogleMaps package</a>和 <a href="https://github.com/iron-meteor/iron-cli" rel="noreferrer noopener nofollow">Iron</a> .</p>

<p> map 在我的浏览器中正确显示,但是当我使用 iOS 模拟器(iPhone 6/iOS 8.3)尝试它时,它永远不会加载:它是自动运行的,系统地返回 <code>false</code> on <code>GoogleMaps.loaded()</code> ... </p>

<p>另一方面,<code>Geolocation</code> 正在正确返回位置。</p>

<p>这是我设置的一个存储库,用于查看整个问题:<a href="https://github.com/Loschcode/meteor-iron-google-maps-issue" rel="noreferrer noopener nofollow">https://github.com/Loschcode/meteor-iron-google-maps-issue</a> </p>

<p>重要的几行可能是 <code>GoogleMaps</code> 包设置:</p>

<pre><code>#
# Helpers
#
Template.GeoMap.helpers {

geolocationError: =&gt;

    error = Geolocation.error()
    return error and error.message

mapOptions: =&gt;

    latLng = Geolocation.latLng()

    if (Meteor.isCordova)
      alert(GoogleMaps.loaded())

    # Initialize the map once we have the latLng.
    if GoogleMaps.loaded() and latLng

      if (Meteor.isCordova)
      alert(&#39;GoogleMaps.loaded&#39;)

      return {
      center: new google.maps.LatLng(latLng.lat, latLng.lng)
      zoom: @MAP_ZOOM
      }

}
</code></pre>

<p>以及过程:</p>

<pre><code>#
# onCreated
#
Template.GeoMap.onCreated =&gt;

GoogleMaps.load()

if (Meteor.isCordova)
    alert(&#39;GoogleMaps.load&#39;)

# When it&#39;s ready, we process the position
GoogleMaps.ready &#39;geoMap&#39;, (map) =&gt;

    # THIS IS NEVER FIRED
</code></pre>

<p>我不确定这是人为错误还是问题,但我已经做了好几个小时了,我真的不明白</p>

<p><strong>注意:在我的测试存储库中,我让一些 alert() 在 iOS 上触发以清楚地看到问题。</strong></p>

<p>对这个问题有任何想法吗?对不起 CoffeeScript 和 Iron 结构。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在 Cordova 上使用外部 API 时,您需要在项目目录的顶层配置一个 mobile-config.js 文件。</p>

<p>对于 google api,您的 mobile-config.js 看起来像 </p>

<pre><code>App.accessRule(&#39;*.googleapis.com/*&#39;);
</code></pre>

<p> <a href="http://docs.meteor.com/#/full/mobileconfigjs" rel="noreferrer noopener nofollow">docs</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Meteor GoogleMaps.load() 在 iOS 上无法使用 Iron,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/33310001/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/33310001/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Meteor GoogleMaps.load() 在 iOS 上无法使用 Iron