PhoneGap 相关协议问题

PhoneGap relative protocol issues

我有一些 Javascript 用于 API (SoundCloud),我远程加载到我的 PhoneGap 应用程序中,任何使用相关协议的资产都存在明显的问题,因为 PhoneGap 将使用 file://

因此,对于任何指向相关协议(例如 //foo.bar/api.js 的资产,PhoneGap 应用程序将尝试获取 file://foo.bar/api.js 这当然不存在。

我无权编辑 API 相关资产。我该如何解决这个问题?

最简单的方法可能是下载 sdk,对其进行编辑(如添加协议),然后随您的应用程序一起交付。

据我所知,您不能只更改 location.protocol 属性 来使其正常工作,所以其他一切都会很麻烦,因此您应该真正坚持第一个解决方案。

但是,您可以获取所有 "script" 标签,遍历它们并检查 src。如果 src 以“//”开头,您只需创建一个带有 "http://" + element.src 的新脚本节点即可正确加载它。你很可能需要 运行 有一点超时,这会大大减慢整个应用程序的速度,如果我的同事会做类似的事情,我可能会打他,但你知道,它会起作用;)