Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

地图加载不出来,显示空白 #2

Open
jackytse opened this issue May 31, 2016 · 6 comments
Open

地图加载不出来,显示空白 #2

jackytse opened this issue May 31, 2016 · 6 comments

Comments

@jackytse
Copy link

你好,yiyangest:

我在项目中使用的 react-native-baidumap,但是遇到一些问题,希望得到你的答复。
我按照readme 中的流程一步一步操作,始终编译报错。
后来我花了些时间能让项目编译不报错了,但是在ios 模拟器中一直现实白屏。
控制台也没发现任何错误信息,我参考论坛里的这篇文章操作,仍不能解决问题:
http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=86157&highlight=%E6%98%BE%E7%A4%BA%E7%A9%BA%E7%99%BD

我想会不会是因为没有填写百度AK的原因?readme 中也没写要在哪里输入AK。
希望能得到你的回复,非常感谢。

$ react-native -v
react-native-cli: 0.2.0
react-native: 0.26.2
@yiyangest
Copy link
Owner

iOS里AK可以写在appdelegate里,应用程序启动的时候设置AK;

BMKMapManager *mapManager = [[BMKMapManager alloc] init];
BOOL ret = [mapManager start:@"your map key" generalDelegate:nil];
if (!ret) {
   NSLog(@"map manager start failed");
}

另外如果你用模拟器测,默认模拟的位置可能是在美国,地图也可能因此显示不出来。建议最好用真机。

@jackytse
Copy link
Author

jackytse commented Jun 1, 2016

@yiyangest 你好,非常高兴能收到你的回复。

在收到你的回复我我尝试了如下操作,但是问题仍然没有得到解决:

  • 解除AppDelegate.mm 中对下面这行代码的注释,然后在iphone 5s中运行项目,但是地图仍旧显示空白
    jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

  • 在AppDelegat.m 中增加了如下代码:

    #import <BMKMapManager.h>
    
    BMKMapManager *mapManager = [[BMKMapManager alloc] init];
    BOOL ret = [mapManager start:@"your map key" generalDelegate:nil];
    if (!ret) {
      NSLog(@"map manager start failed");
    }
    

我参考百度地图SDK类参考 添加了BMKMapManager.h 这个引用,但是编译报错,找不到这个头文件

由于之前没有做过iOS 原生开发,解决这个问题对我来说可能比较困难
若yiyangest 你能有一个sample 上传到github 上,或许对我有很大帮助

@fiattt
Copy link

fiattt commented Jun 3, 2016

使用: BaiduMapAPI_Map/BMKMapComponent.h
image

1.参考手动配置.framework形式开发包http://lbsyun.baidu.com/index.php?title=iossdk/guide/buildproject
TARGETS->Build Phases-> Link Binary With Libaries中点击“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择react-native-baidumapkit/ios目录中BaiduMapAPI_**.framework添加到工程中。

2.在Xcode的Project -> Active Target ->Build Phases ->Link Binary With Libraries添加系统动态库:libsqlite3.0.tbd libstdc++.6.0.9.tbd CoreTelephony.framework

3.引入mapapi.bundle资源文件

4.http://lbsyun.baidu.com/index.php?title=iossdk/guide/attention

5.在AppDelegate.m文件中添加对BMKMapManager的初始化,并填入您申请的授权Key,参考http://lbsyun.baidu.com/index.php?title=iossdk/guide/hellobaidumap

@yiyangest
Copy link
Owner

@jackytse 我增加了一个demo供参考。

@ustcwudi
Copy link

ustcwudi commented Jun 6, 2016

@yiyangest 感谢这个demo,react native 0.20下iOS正常编译运行,安卓我运行后启动时直接退出,android studio显示异常
Caused by: java.lang.IllegalAccessError: tried to access method android.support.v4.net.ConnectivityManagerCompat.:(Lcom/facebook/react/bridge/ReactApplicationContext;)V from class com.facebook.react.modules.netinfo.NetInfoModule
后来修改build.gradle:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile "com.android.support:appcompat-v7:23.0.1" //edit this
compile "com.facebook.react:react-native:+" // edit this
compile files('libs/BaiduLBS_Android.jar')
}
运行成功

@jackytse
Copy link
Author

jackytse commented Jun 7, 2016

@yiyangest @fiattt 非常感谢你们的帮助,我已经能顺利运行百度地图了。
不过要实现自定义的AnnotationView 似乎还挺麻烦的。看来这个坑不小。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants