0

使用 apache cordova 2.1 构建 ios 应用程序。建筑和造型都很好,但地图却不行。

我找到了一个地图插件,但根本无法让它工作: https ://github.com/phonegap/phonegap-plugins/tree/master/iOS/MapKit

我还找到了一个示例 html 文件,但可以: https ://github.com/phonegap/phonegap-plugins/tree/master/iPhone/MapKitPlug/example

1 / 所以我将 MapKit 框架添加到 xcode 中,这非常简单: http ://blog.thinketg.com/blog/david-brainer-banker/xcode-4-tips-adding-frameworks-to-your-project

2/ 添加了 .m 和 .h 文件

3/ 添加 .js 文件并将其链接到我的 index.html

4/ 复制了上面的示例 html。

5/ 按照说明将 Mapkit 添加到 .plist 文件中

当我尝试运行地图时,出现以下错误:

2012-11-05 14:21:29.505 sawdaysApp[25398:c07] Multi-tasking -> Device: YES, App: YES
2012-11-05 14:21:30.895 sawdaysApp[25398:c07] CDVPlugin class MapKitView (pluginName: MapKitView) does not exist.
2012-11-05 14:21:30.895 sawdaysApp[25398:c07] ERROR: Plugin 'MapKitView' not found, or is not a CDVPlugin. Check your plugin mapping in Cordova.plist.
2012-11-05 14:21:30.896 sawdaysApp[25398:c07] FAILED pluginJSON = [null,"MapKitView","showMap",[]]
2012-11-05 14:21:30.896 sawdaysApp[25398:c07] CDVPlugin class MapKitView (pluginName: MapKitView) does not exist.
2012-11-05 14:21:30.896 sawdaysApp[25398:c07] ERROR: Plugin 'MapKitView' not found, or is not a CDVPlugin. Check your plugin mapping in Cordova.plist.
2012-11-05 14:21:30.897 sawdaysApp[25398:c07] FAILED pluginJSON = [null,"MapKitView","setMapData",[{"diameter":1000,"offsetTop":25,"lon":-123.104446,"buttonCallback":"cbMapCallback","lat":49.281467999999997,"height":360,"atBottom":true}]]

我假设错误出在 CDVPluggin 中的 MapKitView 上,但真的不确定。

有没有人有这方面的经验并成功了?

4

2 回答 2

1

这行得通。终于 :)

1 - 按照本指南启动应用程序http://docs.phonegap.com/en/2.1.0/guide_getting-started_ios_index.md.html

2 - 在 plugins 文件夹和 www 文件夹中的 .js 文件中下载并添加 mapkit 插件本机文件(所有这些文件)。https://github.com/phonegap/phonegap-plugins/tree/master/iOS/MapKit。确保将插件文件夹拖到 xcode 中的插件文件夹,否则应用程序将无法正确链接文件。

3 - Whitelist * 将所有域列入白名单并将插件引用添加到 Cordova.plist MapKitView 作为值和键

4 - 下载并包含在 sawdaysTestApp/pluggins 文件夹 JSONKit.h 和 JSONKit.m https://github.com/johnezang/JSONKit

5 - 更改 mapkit.h 和 .m

#ifdef CORDOVA_FRAMEWORK
#import <Cordova/CDVPlugin.h>
#else
#import "CDVPlugin.h"
#endif

to

#import <Cordova/CDVPlugin.h>

更改 mapkit.m

from

#ifdef CORDOVA_FRAMEWORK
// PhoneGap >= 1.2.0
#import <Cordova/JSONKit.h>
#else
// https://github.com/johnezang/JSONKit
#import "JSONKit.h"
#endif


to

    #import "JSONKit.h"
  1. 从https://github.com/phonegap/phonegap-plugins/blob/master/iPhone/MapKitPlug/example/index.html获取示例。将整个示例复制并粘贴到 index.html 中。

7 - 更改 index.html

<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
<script type="text/javascript" charset="utf-8" src="MapKitPlug.js"></script>

到//

<script type="text/javascript" src="cordova-2.1.0.js"></script>
<script type="text/javascript" charset="utf-8" src="MapKit.js"></script>

8 - 运行模拟器。单击显示地图按钮。

于 2012-11-09T15:24:54.943 回答
0

我只想补充两点:

1,从 Cordova 2.3.0 开始的文件名

Cordova.plist

就是现在

yourProject-Info.plist

yourProject就是您的项目名称。

2,我发现您仍然需要通过执行以下操作“将二进制文件与库链接”:

  • 点击你的项目
  • 选择构建阶段
  • 单击将二进制文件与库链接上的箭头
  • 点击添加
  • 搜索 MapKit.framework 并单击添加
于 2013-01-16T00:23:16.557 回答