gpt4 book ai didi

ios - 将插件添加到 Phonegap (3.1.0) Cleaver 应用程序无法正常工作

转载 作者:行者123 更新时间:2023-11-29 10:52:11 24 4
gpt4 key购买 nike

我正在构建一个基于 native iOS 的混合应用程序,其中包含 Cordova 3.1.0 上的部分(称为 Cleaver 组件)。该应用程序正在使用示例 index.html,它显示“设备已就绪”消息(我想这意味着它工作正常)。现在的问题是如何添加自定义插件来与 native 组件和 Phonegap 组件进行通信。

我已经学习了一些教程:

http://moduscreate.com/building-a-custom-phonegap-plugin-for-ios/ http://devgirl.org/2013/09/17/how-to-write-a-phonegap-3-0-plugin-for-android/ (这个适用于 Android)

我已经尝试在基础/规范 Cordova 上安装“连接性”插件,并将结构和 .m 和 .h 复制到我的项目,并添加它自己的 config.xml 部分,但它没有用。

有没有人知道可以查找的其他资源,或者其他人遇到过同样的情况?

谢谢!

编辑:

我已经在新创建的 Cordova 项目上测试了我的自定义插件,它运行起来非常棒。

编辑#2:

在 Phonegap Cleaver 类上进行调试,大部分是在 CDVViewController 上,我确实意识到没有调用 UIWebView 委托(delegate)方法:

- (void)webViewDidStartLoad:(UIWebView*)theWebView
- (void)webViewDidFinishLoad:(UIWebView*)theWebView
- (void)webView:(UIWebView*)theWebView didFailLoadWithError:(NSError*)error
- (BOOL)webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType

有没有办法让它重新分配委托(delegate)以调用它们?

最佳答案

您可能已经找到了有关未调用 UIWebView 委托(delegate)方法的问题的答案,但我想为可能偶然发现此页面的任何其他人提供答案(我在尝试时多次看到这篇文章弄清楚)。

我假设您的项目和我的项目一样使用 ARC,这就是问题所在。如果您按照以下说明进行操作: http://cordova.apache.org/docs/en/3.3.0/guide_platforms_ios_webview.md.html#iOS%20WebViews_using_cdvviewcontroller

它告诉您“实例化一个新的 CDVViewController 并将其保留在某个地方,例如,一个类属性”,但在他们提供的示例中,他们不保留变量。

而是确保将变量分配给属性:

@interface ViewController ()

@property (strong, nonatomic) CDVViewController *cdvViewController;

@end

@implementation ViewController

-(void)viewDidLoad
{
[super viewDidLoad];

self.cdvViewController = [CDVViewController new];
[self.cdvViewController.view setFrame:self.view.frame];
[self.view addSubview:self.cdvViewController.view];
}

现在将调用这些委托(delegate)方法。希望这对其他人有帮助。

关于ios - 将插件添加到 Phonegap (3.1.0) Cleaver 应用程序无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19984156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com