1

PhoneGap、Xcode、HTML、JavaScript を使用して iPhone アプリを開発しています。ダウンロードされたドキュメントを表示する必要があるiFrameがあります(現在、ユーザーが選択できるようにする代わりに、テストドキュメントを使用しています-後で説明します)(ドキュメントを選択しました)。iPhone でサポートされている .pdf ファイルと .docx ファイルを使用してみましたが、コーディングしたボタンをクリックすると、iFrame ではなく Safari で開きます。ドキュメントを表示するためのコード (JavaScript および HTML) は次のとおりです。

    function viewOnline() {
        var site = "file://" + pathToRoot + "/editme.txt"
        $('#myIframe').attr('src', site);
    }

    <button onclick="viewOnline();">View Online</button></li>

    <iframe id="myIframe" style="width: 210; height: 210px;" seamless="seamless" src=""></iframe>

iFrame で .pdf などのファイルを表示できないだけですか、それともコードに何か問題がありますか?

**pathToRootはアプリケーションの別の場所にコード化されている (そして正しいことがテストされている) ため、ファイル パスをハードコードする必要はありません。これは、シミュレーターではなくデバイスに転送するときに変更されます。

**ファイルをダウンロードするコードが必要な場合は、それを提供できます-下にコメントしてください

** また、私は Xcode と PhoneGap を使用するのにかなり慣れていないので、何かを変更する必要がある場合は、可能な限り詳細を教えていただければ幸いです - 事前にどうもありがとう

編集

私は OpenWhitelistURLsInWebView について知っており、それを有効にして、ExternalHosts 配列からダウンロードしている Web サイトを許可しましたが、それでも機能しません。

4

2 に答える 2

2

不可能です。ほとんどのモバイル ブラウザーには、Adobe プラグインなどのプリロードは含まれていません。あなたが見るのはデスクトップではありません。その携帯。そのため、独自のブラウザーを作成し、adobe プラグインを含めない限り、それは不可能です (つまり、プラグインはモバイルでは機能しないため、pdf レンディション ロジックを記述する必要があります)。

于 2013-03-07T10:25:52.393 に答える
1

iFrame が必要になることはほとんどなく、多くの場合、間違った理由で使用されます。多くの場合、通常のスタイルとより単純なマークアップを使用して、目的とまったく同じことを達成できます。

また、phonegap/cordova iframe をグーグルで検索すると、iFrame の問題を詳しく説明する多くの結果が得られます。それらに関する公式の影響ガイドについては、iFrame の使用法を参照してください。

あなたの場合、これらはあなたが考慮する必要があるものです:

PhoneGap-iOS で iFrame を有効にするには、iframe ドメインをホワイトリストに登録し、「OpenAllWhitelistURLsInWebView」を有効にする必要があります。これは問題のようには聞こえませんが、多くのアプリケーションは特定のサイトを (ChildBrowser ではなく) MobileSafari で開く必要があります。これは、"OpenAllWhitelistURLsInWebView" が有効になっていると簡単に実現できません。

OpenAllWhitelistURLsInWebView を変更するには、Xcode で Cordova.plist ファイルを開きます。

ドメインをホワイトリストに登録するには。Cordova.plist ファイルの ExternalHosts 配列に追加します。ExternalHosts タイトルの横にある + を押すだけで、item0 が以下に表示されたら、ドメインを値セクションに追加します (example.com の形式で)。

于 2013-03-07T10:27:20.783 に答える