3

私はWindowsPhone7用のアプリを開発しており、そのためにPhonegapテンプレートを使用しています。すべてが完璧に見えますが、今はブラウザでPDFファイルを開こうとして立ち往生しています。次のことを試しましたが、PDFのURLが2048文字の制限(データURL)を超えているため、機能しません。このコードは、deviceReadyイベントが発生した後に実行されます。

var ref = window.open('http://www.google.com', '_blank', 'location=no');
ref.addEventListener('loadstart', function () { alert(event.url); });

今、PDFファイルをストレージに保存しようとしていますが、ブラウザで開かせようとしていますが、ブラウザに何も表示されません。私はcordovalibからInAppBrowser.csコードを編集しており、browser.Navigate(loc);を呼び出す前に次の行を追加しました。

private void ShowInAppBrowser(string url)
{
    IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
    FileStream stream = store.OpenFile("test.pdf", FileMode.Create);
    BinaryWriter writer = new BinaryWriter(stream);
    var myvar = Base64Decode("the big data url");
    writer.Write(myvar);
    writer.Close();

    if (store.FileExists("test.pdf")) // Check if file exists
    {
        Uri loc = new Uri("test.pdf", UriKind.Relative);
        ...
    }
}

このコードは次のエラーを返します:Log: "エラーコールバックのエラー:InAppBrowser1921408518 = TypeError:プロパティ'url'の値を取得できません:オブジェクトがnullまたは未定義です"

ComponentOneは使いたくない。

どんな助けでも大歓迎です!

4

3 に答える 3

3

PDFファイルのデフォルトのリーダーで、分離されたストレージからPDFファイルを開くことはできません。ファイルがオンラインの場合、たとえばURIがある場合は、WebBrowserTaskを使用してファイルを開くことができます。これにより、ファイルがダウンロードされ、AdobeReaderで開かれます。

Windows Phone 8では、実際にはその拡張子のデフォルトのファイルリーダーで独自のファイルを開くことができますが、PhoneGapとWindows Phone 7をターゲットにしているため、それがどのように役立つかはわかりません。

于 2013-03-25T07:56:17.970 に答える
1

トニは正しいです。自分のビューアを作成してみることができます(これはC1を使用するのと同じですが、より多くの時間がかかります)。私はWP7用のiTextSharpとPDFSharpの移植に取り組みましたが、どちらもPDFビューアではありません。PDFを作成し、それらを解析するのに適しています(ただし、PDFをレンダリングするには、より多くの作業が必要になります)。これは私の個人的な探求でしたが、正直なところ、私が得た最高のことは、PDFからいくつかの画像を抽出できることです(そしてテキストはありません)

于 2013-03-26T14:05:58.147 に答える
0

これを試して

var installedLocation = Windows.ApplicationModel.Package.Current.InstalledLocation;
var assets = await installedLocation.GetFolderAsync("Assets");
var pdf = await assets.GetFileAsync("metro.pdf");
Windows.System.Launcher.LaunchFileAsync(pdf);

これは私のデバイスで正しく機能しました。

于 2014-07-08T11:19:39.943 に答える