windows-phone-7 - 在 Windows Phone 中打开 PDF 文件

标签 windows-phone-7 cordova windows-phone

我正在为 Windows Phone 7 开发一个应用程序,我正在为其使用 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);
        ...
    }
}

此代码返回以下错误: 日志:“错误回调中的错误:InAppBrowser1921408518 = TypeError:无法获取属性‘url’的值:对象为空或未定义”

我不想使用 ComponentOne。

如有任何帮助,我们将不胜感激!

最佳答案

您无法在 PDF 文件的默认阅读器中打开隔离存储中的 pdf 文件。如果文件在线,例如它有一个 URI,您可以使用 WebBrowserTask 打开它,因为它将下载并在 Adob​​e Reader 中打开文件。

在 Windows Phone 8 上,您实际上可以在该扩展名的默认文件阅读器中打开您自己的文件,但我不确定这对您有何帮助,因为您的目标是 PhoneGap 和 Windows Phone 7。

关于windows-phone-7 - 在 Windows Phone 中打开 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15605021/

相关文章:

javascript - Cordova - 如何访问设备存储?

iOS PhoneGap 2.3 没有cordovaframework 的 dmg 文件?

android - 如何跨移动应用共享文本和翻译?

c# - 在 Windows Phone 7 中获取媒体播放器状态

windows-phone-7 - WP7 页面似乎还活着

wcf - 处理需要Web服务的应用程序-处理EndpointNotFoundExceptions

javascript - PhoneGap - 读取预打包的sqlite数据库

javascript - 无法定义属性 '_getObservable' : object is not extensible

windows-phone - 没有模拟器列表来部署 Windows 手机应用程序

windows-phone-7 - WP7 - 水平滚动列表框的问题