3

Cordova 2.3.0 の InAppBrowser が URL を正しくロードしていません。これは、ホワイトリストに登録された URL の新しい方法と、プラグインではなくメインの Cordova WebView にのみ適用される方法に関係していることを理解しています。

ホワイトリストの URL をプラグインに使用する方法に関する記事を読みましたが、非常に曖昧で、提案されたコードをどこに追加すればよいかわかりません。

上記の参照リンクのステップ 3 からの指示は、次のことを示唆しています。

ステップ 3)。プラグインによるネットワーク接続は、ホワイトリストによってチェックされなくなりました。プラグイン ネットワーク接続にホワイトリストを使用するには、接続の "User-Agent" ヘッダーを viewController のユーザー エージェントに設定する必要があります。

`CDVViewController* vc = ((CDVViewController*)self.viewController);
NSString* userAgent = vc.userAgent;
// then set the User-Agent header of your network connection...`

この記事には、このコードをどこに追加するかは記載されていません。MainViewController.m に入ると思いますが、よくわかりません。そのファイルの init 関数に配置しようとしましたが、機能しませんでした。また、「ネットワーク接続の User-Agent ヘッダーを設定してください...」という意味もわかりません。どこで設定すればよいですか?

これで成功した人はいますか?もしそうなら、私はいくつかの助けが大好きです。私は本当にここで立ち往生しています。

ありがとう!

4

3 に答える 3

1

webView:didFailLoadWithErrorを取得し続けた理由は、URLがエンコードされずに渡されたためです。google.comのような通常のURLは正常に機能しましたが、パラメータを含むより複雑なURLがロードエラーを引き起こしました。この回避策は、window.openを呼び出す前にURLをエンコードすることです。

var URL = encodeURI(e.data.url); var ref = window.open(URL, '_blank', 'location=yes');

これにより、Cordova2.5を使用して問題が解決しました。

于 2013-03-16T14:11:36.383 に答える
0

これは、phonegapプロジェクトのconfig.xmlに含まれます。<cordova>タグの間に次のタグを追加します

 <access origin="https://example.com" /> 

このタグにより、example.comへの安全なリクエストが可能になります

アクセス要素はAndroidホワイトリストを制御します。特に設定されていない限り、ドメインはブロックされていると見なされます

于 2013-01-21T04:04:40.887 に答える
0

私はこれをここに投稿しました: Phonegap/Cordova 2.3.0 iOS ホワイトリストは無視されました

ストーリーボードを使用する場合。これを MainViewController またはコントローラーに追加します: CDVViewController

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
        self = [self init];
    }
    return self;
}
于 2013-01-25T20:37:52.167 に答える