我有一些用于API(SoundCloud)的Javascript,我将其远程加载到我的PhoneGap应用程序中,使用相对协议的任何资产都存在明显问题,因为PhoneGap将使用file://
因此,对于指向相对协议的任何资产,例如 //foo.bar/api.js
,PhoneGap应用会尝试获取 file://foo.bar/api.js
,当然不会存在。
我无权修改API相关资产。我该如何解决这个问题?
答案 0 :(得分:1)
最简单的方法可能就是下载sdk,编辑它(就像添加协议一样),然后将它与你的App一起发送。
据我所知,你不能只改变location.protocol属性来使其工作,所以其他一切都会很糟糕,所以你应该坚持第一个解决方案。
然而,你可以得到所有"脚本"标签,迭代它们并检查src。如果src以" //"开头您只需使用"http://" + element.src
创建一个新的脚本节点即可正确加载它。你最有可能需要稍微超时运行它,这会使整个应用程序放慢一点,如果我的同事会这样做,我可能会打他,但你知道,它会工作;)