0

我正在开发一个与时间表一起使用的商业移动应用程序,以及一个所有通用的工作流程,比如接受和创建文档。

现在在一个页面上显示了一个列表操作附件,我想要做的是当用户单击附件时,它应该在 webbrowser 控件中打开。问题是,它不会总是 PNG 或 JPG,它可以是 word 文档或 powerpoint 演示文稿。

所以我做了什么,在从 web 服务获取附件后,我调用了这个函数。

 public static string GetMimeType(string fileExt)
        {
            //fileExt.ThrowIfNullOrEmpty();
            //fileExt = fileExt.TrimStart('.');
            fileExt = Path.GetExtension(fileExt);
            switch (fileExt)
            {
                case ".jpeg":
                case ".gif":
                case ".png":
                case ".tiff":
                case ".bmp":
                    return "image/" + fileExt;

                case ".jpg":
                    return "image/jpeg";

                case ".tif":
                    return "image/tiff";

                case ".htm":
                case ".html":
                case ".shtml":
                    return "text/html";

                case ".js":
                    return "text/javascript";

                case ".csv":
                case ".css":
                case ".sgml":
                    return "text/" + fileExt;

                case ".txt":
                    return "text/plain";

                case ".wav":
                    return "audio/wav";

                case ".mp3":
                    return "audio/mpeg3";

                case ".mid":
                    return "audio/midi";

                case ".qt":
                case ".mov":
                    return "video/quicktime";

                case ".mpg":
                    return "video/mpeg";

                case ".avi":
                    return "video/" + fileExt;

                case ".rtf":
                    return "application/" + fileExt;

                case ".xls":
                    return "application/x-excel";

                case ".docx":
                case ".doc":
                    return "application/msword";

                case ".ppt":
                    return "application/powerpoint";

                case ".gz":
                case ".tgz":
                    return "application/x-compressed";

                default:
                    throw new NotSupportedException("Unknown fileExt: " + fileExt);
            }
        }

然后我得到它的文件类型。

现在在这里我不知道该怎么办...我将如何使用 mimetype 和附件名称来告诉 webbrowser 控件以适当的方式显示附件。

到目前为止,这就是我对 webbrowser 控件的页面加载的了解。

 string imagename = WorkflowBase.ViewModel_WFPOSDocument.POSDocument.AttachmentList[0].FileName.ToString();
        string image = WorkflowBase.ViewModel_WFPOSDocument.POSDocument.AttachmentList[0].Attachment.ToString();
        string imagelink = WorkflowBase.ViewModel_WFPOSDocument.POSDocument.AttachmentList[0].AttachmentLink.ToString();

        string imagemimetype = AccTech.Helpers_and_Extensions.MimeTypes.GetMimeType(imagename);
        MyViewer.IsScriptEnabled = true;
        MyViewer.DataContext = this;



        MyViewer.Source = new Uri(URL, UriKind.Relative);

myviewer 是 webbrowser 控件。

还需要什么,直接说出来。

我不知道如何做到这一点,任何链接、建议或代码将不胜感激,我仍然是初级开发人员。

问候

4

1 回答 1

0

Windows phone 上无法通过 webview 显示附件,因为 Internet Explorer 禁用了所有 ativex 控件。

所以我使用了LauncFileAsync()类来让本地查看器打开附件!

希望这会帮助那些尝试过和我一样的人:)

于 2013-06-13T13:34:09.640 回答