1

MeteorJS: https://github.com/zeroasterisk/Presenteract

PhoneGap: https://github.com/zeroasterisk/Presenteract-PhoneGap-ios

  • iOS の PhoneGap 2.7 内で MeteorJS アプリケーションを実行しています。
  • MeteorJS アプリケーションは、外部 URL を介してロードさconfig.xmlれ、<content src="http://presenteract.meteor.com" />
  • ブラウザ内からの oAuth に問題はありません
  • 構成はaccess完全なワイルドカードでセットアップされます<access origin="*" />
  • アプリケーションは非常にうまく機能し、ブラウザ版と同じです....

しかし、PhoneGap 内から oAuth を試みると、次のエラーが発生します。

Failed to load webpage with error: The operation couldn’t be completed.
(NSURLErrorDomain error -999.)

(注: Google、Facebook、および Twitter からの oAuth 試行はすべて同じです。外部サイトをロードし、通常どおりログインを続行し、アプリケーションのメイン URL にリダイレクトします)

私は他の StackOverflow レポートに目を通し、いくつかのグーグル検索を行いました...私が見つけた最も有用なものは次のとおりです。

Facebook ダイアログがエラーで失敗しました: 操作を完了できませんでした。(NSURLErrorDomain エラー -999) & 関連: NSURLErrorDomain エラー -999 - iOS でリンクが失敗する

これは非常に有望に思えますが、このソリューションを PhoneGap に変換する方法がわかりません...

次のスタブを見つけて<projectname>/Classes/MainViewController.m、少し遊んでみましたが、まだ解決策はありません....

- (void) webView:(UIWebView*)theWebView didFailLoadWithError:(NSError*)error
{
    /* (this does log to the console, but doesn't tell me anything different)
    * still: theWebView webView didFailLoadWithError:NSURLErrorDomain -999
    */
    NSLog(@"theWebView webView didFailLoadWithError:%@ %d",error.domain,error.code);

    /* (this is commented out, it didn't seem to do anything for me) */
    if ([error.domain isEqualToString:@"NSURLErrorDomain"] && error.code == -999) {
        NSLog(@"theWebView webView caught the error=-999... but returning void doesn't force the page to reload/continue:%@ %d",error.domain,error.code);
        return;
    }

    /* (this was already here, part of PhoneGap) */
    return [super webView:theWebView didFailLoadWithError:error];
}

2 番目の「caught the error=-999」というログ メッセージが表示されますが、アプリで白い画面が表示されたままになります。

  • アプリケーションの URL へのリダイレクトを許可する設定がどこかにあるのではないでしょうか?
  • おそらく、アプリのメイン ページを強制的にリロードする必要がありますか?
  • おそらく、読み込みが停止しないように、エラーをキャッチするよりエレガントな方法が必要ですか?
  • おそらく、そもそも何が失敗の原因だったのかについて、もっと情報が必要でしょうか?
4

1 に答える 1