タイトルの通りです。CocoonJS iOS WebView+ プラグインを Cordova PhoneGap プロジェクトに追加すると、プラグインの読み込みと実行が停止します。
空のプロジェクトでも試してみましたが、うまくいきませんでした。
CocoonJS プラグインを追加する方法は次のとおりです。
cocoonjs plugin add com.ludei.ios.webview.plus
以下のプラグインで試してみました。
com.google.cordova.admob 1.1.1 "AdMob Plugin Pro"
com.ludei.ios.webview.plus 1.0.4 "Webview+"
com.rjfun.cordova.plugin.lowlatencyaudio 1.1.4 "LowLatencyAudio"
nl.x-services.plugins.socialsharing 4.3.7 "SocialSharing"
org.apache.cordova.camera 0.3.2 "Camera"
それらのどれも機能しませんでした。
SocialSharing の場合、初期化関数が呼び出されます。ただし、他のプラグイン関数は呼び出されません。
残りのプラグインでは、初期化関数も呼び出されません。
プロジェクトを WebView+ と比較した後、プラグインの初期化を呼び出す場所は CordovaLib.xcodeproj/Classes/Cleaver/CDViewController.m の 669 行目にあり、URL スキームがPhoneGap アプリの場合:
(
BOOL)webView:(UIWebView)theWebView shouldStartLoadWithRequest:(NSURLRequest)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL* url = [request URL];
/* Execute any commands queued with cordova.exec() on the JS side.
The part of the URL after gap:// is irrelevant. */
if ([[url scheme] isEqualToString:@"gap"])
{
[commandQueue fetchCommandsFromJs]; // The delegate is called asynchronously in this case, so we don't have to use // flushCommandQueueWithDelayedJs (setTimeout(0)) as we do with hash changes.
[commandQueue executePending];
return NO;
}
...
}
CocoonJS を使用しない私の PhoenGap プロジェクトでtheWebView shouldStartLoadWithRequest
は、3 回呼び出されます。との最後の時間@"gap://ready"
。
次に、コードのその部分に入り、すべてのプラグインをロードします。
CocoonJS では、theWebView shouldStartLoadWithRequest
一度だけ呼び出され、@"gap://ready"
. したがって、どのプラグインも初期化されません。
CocoonJS サイトでは、PhoneGap プラグインを WebView+ で使用できることが示されているようです。
誰でもこの問題を解決する方法を知っていますか?
ありがとう!