【问题标题】:PhoneGap Build In App Browser not being loadedPhoneGap Build In App Browser 未加载
【发布时间】:2017-08-07 10:57:57
【问题描述】:

我有一个 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 (&lt;preference name="phonegap-version" value="cli-6.5.0" /&gt;) 无济于事。

检查插件是否存在于 phonegap 构建“插件”选项卡中。他们是。

尝试用 phonegap.js 替换对 cordova.js 的引用。这根本不起作用。

加载js文件的顺序(上面对inappbrowser的调用是在一个单独的js文件中)。没有区别。

我做错了什么?!

还是 TestFlight/Hydrated Application 组合有什么奇怪的地方?

您可以在此处查看我所做的荒谬提交以及完整的代码库:

https://github.com/andycharrington/yfa/commits/master

我们将不胜感激任何建议。

谢谢。

【问题讨论】:

  • 抱歉,我还尝试了 cordova.InAppBrowser.open 函数中“_blank”、“_self”、“_system”的所有变体。
  • 此外,我已经尝试了内容安全策略的每一个渗透。目前是:&lt;meta http-equiv="Content-Security-Policy" content="img-src * 'self' data:; default-src * 'self' gap: wss: ws: ; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval';"&gt;
  • 您是否尝试过卸载插件然后重新安装它们,有时这确实会有所作为。

标签: ios cordova jquery-mobile phonegap-build inappbrowser


【解决方案1】:

今天早上使用 Phone Gap Build 重新编译未更改的代码似乎神奇地修复了它。当这种情况发生时,你不只是喜欢它吗? :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 2019-07-18
    • 2015-08-24
    • 2022-12-26
    相关资源
    最近更新 更多