我有一个phonegap应用程序可以通过phonegap开发iOS应用程序上的本地服务器完美地工作。
具体来说,打电话给
var ref = cordova.InAppBrowser.open('https://subdomain.domain.com', '_blank', 'location=no');
在开发应用程序中工作正常,但是当推送到phonegap构建并通过testflight安装的应用程序访问时,使用Hydration轻松更新,按钮完全没有响应。
我感觉没有插入任何插件,因为状态栏也出现故障。
以下是config.xml文件的相关部分:
<plugin name="cordova-plugin-inappbrowser" spec="~1.7.0" />
<plugin name="cordova-plugin-statusbar" />
<plugin name="cordova-plugin-whitelist" spec="1.3.1" />
我知道这种不安全感,然而,更改为我尝试访问的网址并没有改变任何内容:
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<allow-intent href="*" />
</platform>
有问题的按钮:
<a href="#" id="signUpButton" class="btn btn-default appButton appAlt"><span class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></span> OR SIGN UP</a>
与此按钮相关的JavaScript:
document.addEventListener("deviceready", function(){
deviceReadyDependantFunctions();
initializeApplication();
});
function deviceReadyDependantFunctions(){
alert('initialised!');
$('#signUpButton').unbind().click(function(){
console.log('here');
var ref = cordova.InAppBrowser.open('https://subdomain.domain.com?some=variable', '_blank', 'location=no');
ref.addEventListener('loadstart', function(event) { alert(event.url); });
console.log(ref);
});
}
显然,那里有一堆调试......
“初始化”警报会在所有环境中触发。
event.url
警报会在开发应用程序中触发,但不会在测试飞行,水合应用程序中触发。
我一直在尝试我能找到的所有内容来纠正这个...我找到的唯一解决方案是使用简单的href="theUrl.com"
并让系统浏览器加载它。这根本不是解决方案......我需要在应用中加载网址。这是一个注册页面,必须从应用程序访问它。
我尝试过的事情:
白名单的每一次渗透,虽然有不同的文档说在应用浏览器中/不受白名单插件的影响。
使用不同版本的phonegap(<preference name="phonegap-version" value="cli-6.5.0" />
)无济于事。
检查插件是否存在于phonegap build“plugins”选项卡中。他们是。
尝试用phonegap.js替换对cordova.js的引用。这根本不起作用。
加载js文件的顺序(上面对inappbrowser的调用是在一个单独的js文件中)。没有区别。
我做错了什么?!
或者TestFlight / Hydrated Application组合有什么奇怪的东西吗?
您可以看到我所做的荒谬提交,以及完整的代码库:
https://github.com/andycharrington/yfa/commits/master
任何建议都会受到大力赞赏。
谢谢。
答案 0 :(得分:0)
今天早上用Phone Gap Build重新编译未更改的代码似乎神奇地修复了它。当这种情况发生时,你不喜欢它吗? :)