在Android 4.4(kitkat)上的trigger.io应用程序中,如何在ajax请求中使用相对URL?

在Android 4.4(kitkat)上的trigger.io应用程序中,如何在ajax请求中使用相对URL?,ajax,jquery-mobile,android-webview,trigger.io,android-4.4-kitkat,Ajax,Jquery Mobile,Android Webview,Trigger.io,Android 4.4 Kitkat,我的trigger.io捆绑的jquery移动应用程序在android

我的trigger.io捆绑的jquery移动应用程序在android<4.4和iOS设备上都能很好地工作,但一旦jquery移动应用程序加载,就拒绝在android 4.4上加载任何相关页面、脚本等。好了,jqm将所有链接都转到ajax请求,这表明ajax请求已断开。WebView在kitkat中已更改为Chromium 30,迁移指南提到url处理是一个突破性更改的领域(下面的第二个链接)

安卓4.4上至少还有一个人的jqm/trigger.io应用程序坏了,请参阅。我制作了一个小应用程序,您可以使用它来验证问题:


在android 4.4上,如何让ajax请求再次针对相对URL工作?在为Android 4.4(kitkat)构建trigger.io应用程序时,是否有方法控制targetSdkVersion?trigger.io webview/浏览器中是否定义了一个自定义方案,可以帮助处理相关链接?

不幸的是,对于非标准[a]方案,Android 4.4 webview的URL逻辑要保守得多。这是因为标准方案的规范化假设它可以将URL更改为小写、do%编码等。。例如,这将破坏
内容://
URL。如果您查看您链接的bug,那么问题的根源似乎是jqm将URL重写为
content:////
而不是
内容://

我认为解决这4个斜杠不太可能满足WebView中紧急修复的要求(如果您不同意,欢迎您对此提交一个bug),因此我认为解决这一问题的最好(可能也是最快的)方法是与jqm团队合作(或提交拉取请求),使jqm不向URI添加额外的2个斜杠

[a] Chromium有一系列硬编码的“标准”方案。其中包括http、https、ftp等,它本质上是一系列已知与规范化算法兼容的方案


编辑:不幸的是,在这种情况下,更改targetSdkVersion对您没有帮助。

hi marcin,谢谢您的反馈。这个问题现在已在jquery mobile pull请求中修复,请再次查看所有功能:-)