2013-11-14 48 views
1

我正在構建一個基於本機iOS的混合應用程序,其部件覆蓋Cordova 3.1.0(稱爲Cleaver組件)。該應用程序正在使用示例index.html,它顯示「DEVICE IS READY」消息(我認爲這意味着它工作正常)。現在的問題是如何添加自定義插件來傳遞本地和Phonegap組件。將插件添加到Phonegap(3.1.0)Cleaver應用程序不工作

我跟着一些教程:

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系統)

我試過在底座/規範科爾多瓦安裝「連接」插件和複製的結構和.m和.h添加到我的項目中,並添加它自己的config.xml部分,但它不起作用。

有沒有人知道另一個資源尋找,或其他人一直處於相同的情況?

謝謝!

編輯:

我測試過上一個新創建的科爾多瓦項目我自定義插件,它的工作原理就像一個魅力。

編輯#2:

製作上的PhoneGap克利弗類調試,大部分的CDVViewController,我沒有意識到的UIWebView委託方法不被稱爲:

- (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 

有一種方法來重新分配他們被稱爲代表?

回答

2

你可能已經想出了關於UIWebView委託方法沒有被調用的問題的答案,但是我想爲其他人可能遇到的這個頁面提供一個答案(我在這篇文章中遇到過幾次試圖找出它)。

我假設你的項目使用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]; 
} 

而現在這些委託方法將被調用。希望這可以幫助別人。

+0

感謝您的回答。事實上,我決定爲每個平臺製作一個本地項目,但我會在我的下一個項目中嘗試它,並添加正確答案的標記! – Floydian

相關問題