`

PhoneGap0.9.6的Connecton插件与MessageUI.framework中的Connection冲突

 
阅读更多

PhoneGap0.9.6的Connecton插件与MessageUI.framework中的Connection冲突

 

对一个运行正常的项目加入MessageUI.framework后,项目刚刚开始运行就Crash了。

 

原因分析:

分析后发现是因为MessageUI.framework中的Connection类与PhoneGap0.9.6中的Connection插件冲突了,因为PhoneGap的插件的实例化类似于用了反射机制,在PhoneGapDelegate里实例化PhoneGap自己的Connection ObjectiveC类的时候是用MessageUI.framework中的Connecton类,但是在PhoneGapDelegate里还会调用initWithWebView方法,而MessageUI.framework中的Connecton类却没有这个方法,所以会Crash。

 

解析方法:

方法1)升级PhoneGap到1.0及其以后。这个方法没有试过,据说可以。

 

方法2)把PhoneGap0.9.6源码中的Connection插件ObjectiveC类名改个名字,如PGConnection,同时把其它引用这个类名地方也改过来。再把项目中引用的PhoneGap0.9.6.js和PhoneGap0.9.6.min.js文件中Connection类改为PGConnection。把PhoneGap.plist文件中之前插件部分的Connection的key和value都改为PGConnection。最后,不要忘了一个地方,在PhoneGapDelegate中379行左右“id cmd = [self getCommandInstance:@"Connection"];”改为“id cmd = [self getCommandInstance:@"PGConnection"];”。

 

OK,这样于运行项目就万事大吉了,而且又不影响MessageUI.framework和PhoneGap0.9.6各自的Connection类的功能使用。

0
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics