0

私はいくつかのリンクがInAppBrowserでURL​​を開く必要があるjQuerymobileでphonegap/cordova 2.9 iOSアプリを開発しています。また、Google Admob を統合しました。ナビゲーションは、いくつかの異なる html ページを含む基本的な単一ページ テンプレートです。

アプリが読み込まれると、アプリの他のセクションに移動しない場合、アプリ内ブラウザーの URL でボタンを押すと、アプリ内ブラウザーが開きます。しかし、アプリの他のセクションに移動して再度 index.html に移動すると、アプリ内ブラウザーが失敗し、機能しません。

アプリのさまざまなセクションは、target="_blank" でリンクされています。target="_blank" なしでセクションをリンクすると、すべて正常に機能しますが、target="_blank" を使用して index.html に戻り、XML データをリロードする必要があります。

数日前に解決策を探していますが、何も見つかりませんでした。この投稿で詳しく説明されているのは1つだけですが、解決策はありません: http://iphonedevsdk.com/forum/iphone-sdk-development/115057-inappbrowser-is-not-opening.html

私が試したもう 1 つのことは、https: //build.phonegap.com/plugins/2 から Childbrowser プラグインをインストールし、アプリ内ブラウザの代わりに使用することですが、動作させることができません。

誰でも私を助けることができますか?. どうもありがとうございました。

4

1 に答える 1

0

これから先に進んでいるかもしれませんが、私のシナリオは、jquery mobile で Cordova 2.9.1 を使用していたというものでした。ユーザー エクスペリエンスのある時点で、index.html にも戻ります。どの時点でも InAppBrowser を開かない限り、これは正常に機能しました。InAppBrowser は機能しましたが、次に index.html の更新に戻ったときに、InAppBrowser を含むすべてのプラグインが実行されませんでした。

私の修正は、次のように CDVInAppBrowser.m を変更することでした。

それ以外の:

BOOL isPDF = [@"true" isEqualToString :[theWebView stringByEvaluatingJavaScriptFromString:@"document.body==null"]];
if (isPDF) {
    [CDVUserAgentUtil setUserAgent:_prevUserAgent lockToken:_userAgentLockToken];
}

[self.navigationDelegate webViewDidFinishLoad:theWebView];

isPDF ロジックを取り出し、常に以前の UserAgent に更新されるようにしました。私はただ..

[CDVUserAgentUtil setUserAgent:_prevUserAgent lockToken:_userAgentLockToken];

[self.navigationDelegate webViewDidFinishLoad:theWebView];

これが、cordova.js が再度リロードされたときに、InAppBrowser が jquery-mobile または同様のフレームワークを壊すという同様のシーンにいた可能性がある人に役立つことを願っています。

于 2014-01-31T10:45:32.700 に答える