折腾来折腾去

pikipity的blog

解决澳门大学 Ummoodle 上 PDF 文件在 IOS 无法正常打开或下载的问题

澳门大学的 ummoodle 在更新之后就出现了 pdf 文件在 IOS 设备上无法正常打开的状况,打开包含 pdf 的网页之后就会出现如下画面:

无法拖动和下载的 pdf 文件

pdf 文件就好像一个没有完整显示的图片一样在那里,没法下载和拖动。但是此问题仅限于 IOS 设备里的浏览器,电脑上的浏览器可以正常显示,Android 设备上无法显示文件,但是会显示一条链接,点击连接之后就可以下载文件了,所以很显然是 IOS 设备的浏览器对于网页的解析出现了问题,于是我研究了一下一个含有 pdf 文件的网页,发下了下面的一段代码:

<object id="resourceobject" data="https://ummoodle.umac.mo/pluginfile.php/74630/mod_resource/content/1/elec414-2013-2.pdf" type="application/pdf" width="800" height="600">

<param name="src" value="https://ummoodle.umac.mo/pluginfile.php/74630/mod_resource/content/1/elec414-2013-2.pdf" />

Click <a href="https://ummoodle.umac.mo/pluginfile.php/74630/mod_resource/content/1/elec414-2013-2.pdf" >elec414-2013-2.pdf</a> link to view the file.

</object>

很显然,网页本身是想调用 IOS 内置的 pdf 阅览器来浏览 pdf 文件,但是由于浏览器排版的原因(固定宽高的设定很明显不适合移动设备啊),导致此被预览的 pdf 文件被其他区块所覆盖,进而导致用户无法对 pdf 文件进行操作。由于 Android 系统没有内置 pdf 阅览器,所以只会显示文件链接,从而避免了排版问题。

既然原因找到,那么就来想一想解决方法吧。很显然,学校对网页的改进还需要时间,那么就从自身做起吧,基本来说想到了两种解决方案:

  1. 禁用 IOS 内置的 pdf 阅览器。这个方法比较复杂,由于 IOS 取消了 safari 设置中“禁用内置 pdf 阅览器”的选项,导致现在想要禁用 pdf 阅览器就必须直接删除/Library/下的 pdf 阅览器的插件才行,必须越狱之后安装 iFile 才可以。此方法不仅麻烦,由于需要触碰到系统文件,还比较危险,一旦删错文件,后果不堪设想。
  2. 使用 moodle 的 APP,例如 My MoodleMoodle Mobile,暂时我还没有使用过,但是据使用者说,可以正常打开 pdf 文件。
  3. 直接浏览目标网页的 html 源代码,找到 pdf 文件原始地址来打开。我选择使用这种方法,一次设置之后,以后使用也很方便,熟练以后,因为 ummoodle 的各个网页的 html 代码结构都差不多,所以也是很快捷的。由于 IOS 上的 safari 浏览器无法直接查看源代码,所以需要借助一些可以查看 html 的网站来实现这个方法,我借助的是这个网站的方法。原理就是利用 “GeSHi” 这个小程序将网页发送给 “ole.michelsen.dk” 的服务器来解析网页的 html 代码,然后显示出来(还带有代码高亮呦!!)。具体的设置如下:

    1. 在 IOS 上用 safari 随便打开一个网页,然后保存为书签,为了以后方便,书签起名叫“查看源代码”

      我这里保存 Google 为书签

      书签起名叫“查看源代码”

    2. 打开这个链接,将里面的内容全选并复制。

      复制所有内容

    3. 在书签中找到刚才保存的书签,并将刚才复制的内容粘贴到此书签的 URL 处,点击“完成”保存书签就可以了。

      编辑“查看源代码”书签

      将复制的内容粘贴到书签 URL 处 如果想要下载某个网页的 pdf 文件,就先打开那个含 pdf 文件的网页,然后点击“查看源代码”的书签,就会打开网页的源代码,然后找到其中包含 pdf 文件源地址的部分(很好找的),点击源地址下载就可以了。

    含有 pdf 文件的网站,点击“查看源代码”的书签(可以把书签放在书签栏方便查找)

    html 中包含 pdf 文件源地址的部分

    点击 pdf 文件源地址就可以正常打开 pdf 文件了

PS: ICTO 回复了相关问题,回复邮件内容如下:

For this case, please advice your teacher to change the "Appearance" option of the PDF file to "New window" in UMMoodle and this will solve your problem.


Comments