2016-03-01 1 views
0

Я пытаюсь сделать расширение Crosswalk в iOS (Objective-C) для своего собственного приложения, которое отображает веб-сайт в среде выполнения Crosswalk, но оно не работает. Ниже приводится подробная информация:Расширение перекрестка не работает в iOS

  1. Создан проект каркаса CocoaTouch в корне моего основного проекта, который является одностраничным приложением.
  2. Добавлен следующий код в файл MyXWalkExtension.h моего CocoaTouch рамочного проекта:

    #import <UIKit/UIKit.h> 
    
    #import <XWalkView/XWalkView.h> 
    
    //! Project version number for MyXWalkExtension. 
    
    FOUNDATION_EXPORT double MyXWalkExtensionVersionNumber; 
    
    //! Project version string for MyXWalkExtension. 
    
    FOUNDATION_EXPORT const unsigned char MyXWalkExtensionVersionString[]; 
    
    @interface MyXWalkExtension : XWalkExtension 
    
    @end 
    
    @interface MyXWalkExtension() 
    
    - (void) jsfunc_myFunction:(UInt32*)callId message:(NSString *)myVariable; 
    
    @end 
    
    @implementation MyXWalkExtension 
    
    - (void) jsfunc_myFunction:(UInt32*)callId message:(NSString *)myVariable { 
    
    NSLog(@"MY VARIABLE: %@", myVariable); 
    
    } 
    
    @end 
    
  3. Добавлено extensions.plist (не смог найти лучший способ отображения .plist контента) в рамках проекта CocoaTouch, как следующим образом:

    <plist> 
    
    <dict> 
    
        <key>XWalkExtensions</key> 
    
        <dict> 
    
         <key>xwalk.myxwalkextension.MyXWalkExtension</key> 
    
         <string>MyXWalkExtension</string> 
    
        </dict> 
    
    </dict> 
    
    </plist> 
    
  4. Добавлена ​​manifest.plist в рамках проекта CocoaTouch:

    <plist> 
    
    <dict> 
    
        <key>xwalk_extensions</key> 
    
        <array> 
    
         <key>item 0</key> 
    
         <string>xwalk.myxwalkextension.MyXWalkExtension</string> 
    
        </array> 
    
    </dict> 
    
    </plist> 
    
  5. Вызов из JavaScript следующим образом:

    xwalk.myxwalkextension.MyXWalkExtension.myFunction('100'); 
    

Я проверил ли выше блочного кода в JavaScript выполняется или не & его выполнения, но я не получаю журнал в моей Xcode протоколирования консоли. Потому что я думаю, что jsfunc_myFunction не вызывается из javascript. Я не знаю, что мне не хватает или что-то не так. Я следую crosswalk project website. Я знаю, что нам не нужно расширять среду выполнения Crosswalk в случае Android, где мы можем вызывать собственные методы Android из javascript, предоставляя интерфейс javascript, но в iOS это не так. Итак, я решил расширить время выполнения Crosswalk. Веб-сайт проекта пешеходного перехода не очень очерчен &. Я забываю встраивать расширение в свой проект, если да, как мне это сделать?

ответ

0
[XWalkExtensionFactory register:@"xwalk.myxwalkextension.MyXWalkExtension" cls:[MyXWalkExtension class]]; 
//where xWalkView is XWalkView (Crosswalk's WebView). 
[self.xWalkView loadExtension:[XWalkExtensionFactory createExtension:@"xwalk.myxwalkextension.MyXWalkExtension"] namespace:@"xwalk.myxwalkextension.MyXWalkExtension"]; 

я должен был загрузить мой XWalkExtension & встроить его в приложение в ViewController.m.

Смежные вопросы