我有一些用于 API (SoundCloud) 的 Javascript,我将其远程加载到我的 PhoneGap 应用程序中,并且使用相关协议(protocol)的任何 Assets 都存在明显的问题,因为 PhoneGap 将使用 file://
因此,对于任何指向相关协议(protocol)的 Assets ,例如 //foo.bar/api.js
,PhoneGap 应用程序将尝试获取 file://foo.bar/api.js
当然不存在。
我无权编辑与 API 相关的 Assets 。我该如何解决这个问题?
最佳答案
最简单的方法可能是只下载 sdk,对其进行编辑(如添加协议(protocol)),然后随您的应用一起交付。
据我所知,您不能只更改 location.protocol 属性来使其正常工作,否则其他所有内容都将变得很棘手,因此您应该真正坚持第一个解决方案。
但是,您可以获取所有“脚本”标签,遍历它们并检查 src。如果 src 以“//”开头,您只需使用 "http://"+ element.src
创建一个新的脚本节点即可正确加载它。你很可能需要在有一点超时的情况下运行它,这会大大减慢整个应用程序的速度,如果我的一个同事会做类似的事情,我可能会打他,但你知道,它会起作用;)
- 本
关于javascript - PhoneGap 相关协议(protocol)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28320640/