Crosswalk ランタイムで Web サイトを表示する自分のアプリ用に、iOS (Objective-C) で Crosswalk 拡張機能を作成しようとしていますが、機能していません。詳細は次のとおりです。
- シングル ページ アプリケーションであるメイン プロジェクトのルートに CocoaTouch フレームワーク プロジェクトを作成しました。
CocoaTouch フレームワーク プロジェクトの MyXWalkExtension.h ファイルに次のコードを追加しました。
#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
次のように、CocoaTouch フレームワーク プロジェクトに extensions.plist (.plist コンテンツを表示するより良い方法が見つかりませんでした) を追加しました。
<plist> <dict> <key>XWalkExtensions</key> <dict> <key>xwalk.myxwalkextension.MyXWalkExtension</key> <string>MyXWalkExtension</string> </dict> </dict> </plist>
CocoaTouch フレームワーク プロジェクトに manifest.plist を追加しました。
<plist> <dict> <key>xwalk_extensions</key> <array> <key>item 0</key> <string>xwalk.myxwalkextension.MyXWalkExtension</string> </array> </dict> </plist>
次のようにJavaScriptから呼び出します。
xwalk.myxwalkextension.MyXWalkExtension.myFunction('100');
上記の JavaScript コードのブロックが実行中かどうかを確認しましたが、実行中ですが、xcode ログ コンソールにログが記録されません。jsfunc_myFunction
がjavascriptから呼び出されていないと思うからです。何が欠けているのか、間違っているのかわかりません。crosswalk プロジェクトのウェブサイトをフォローしています。Android の場合、javascript インターフェイスを提供することで javascript から Android ネイティブ メソッドを呼び出すことができる場合、Crosswalk ランタイムを拡張する必要がないことはわかっていますが、iOS ではそうではありません。そこで、Crosswalk ランタイムを拡張することにしました。横断歩道プロジェクトのウェブサイトは、あまり説明的で詳細ではありません. プロジェクトに拡張機能を埋め込むのを忘れていますか? はいの場合、どうすればよいですか?