phonegap Inappbrowser 不显示位置栏(ios)

Posted

技术标签:

【中文标题】phonegap Inappbrowser 不显示位置栏(ios)【英文标题】:phonegap Inappbrowser not displaying location bar (ios) 【发布时间】:2013-08-20 11:59:24 【问题描述】:

我已尽我所能尽我所能,并按照 phonegap 网站上的说明调用了 inappbrowser,它可以正常工作,但我似乎无法显示状态栏,也无法全屏启动。

我的网页标签中有以下代码。

<script type="text/javascript">
      function onDeviceReady() 
      var ref = window.open('http://www.bbc.co.uk', '_blank', 'location=yes');
     // close InAppBrowser after 5 seconds
       setTimeout(function() 
            ref.close();
            , 5000);
                    
</script>

用过

onClick="onDeviceReady();

完美地启动了 inappbrowser。 我已经用我的 config.xml 做了所有可能的事情,请在下面找到代码

<preference name="phonegap-version" value="2.9.0" />
<preference name="permissions" value="none" />
<preference name="orientation" value="landscape" />
<preference name="target-device" value="tablet" />
<preference name="fullscreen" value="true" />
<preference name="webviewbounce" value="false" />
<preference name="prerendered-icon" value="true" />
<preference name="stay-in-webview" value="false" />
<preference name="ios-statusbarstyle" value="black-opaque" />
<preference name="detect-data-types" value="true" />
<preference name="exit-on-suspend" value="false" />
<preference name="show-splash-screen-spinner" value="true" />
<preference name="auto-hide-splash-screen" value="true" />
<preference name="disable-cursor" value="false" />
<preference name="load-url-timeout" value="15000" />
<preference name="FadeSplashScreen" value="true" />
<preference name="FadeSplashScreenDuration" value=".25" />
<preference name="TopActivityIndicator" value="gray" />
<preference name="ShowSplashScreenSpinner" value="true" />

但似乎没有显示浏览器的地址栏。现在已经用了 2 天了,我已经在模拟器和现场设备上对其进行了测试。 inappbrowser 显示但不是全屏且没有工具栏。

任何帮助都会提前感谢。

【问题讨论】:

我相信 ref 对象是一个 JS 窗口对象,虽然不确定,如果是,你可以尝试操纵大小,至少尝试调试它 【参考方案1】:

我已经能够回溯这个问题。尽管安装了PhoneGap 3.0.0,我起初很困惑为什么phoneGap网站会要求包含&lt;script src="cordova.js"&gt;&lt;/script&gt;,我把它拿出来并且它运行良好,我还必须使用@手动将InAppBrowser插件安装到我的应用程序目录中使用create MyiPadApp com.example.MyiPadApp myApp 创建我的应用程序后执行 987654322@ 命令,然后一切正常。

接下来是寻找如何从子网站关闭 InAppBrowser。我已经成功注入了几行javascript代码来监控触摸和点击活动

var IDLE_TIMEOUT = 10;
var _idleSecondsCounter = 0;

document.ontouchstart = function() 
  _idleSecondsCounter = 0;
  ;

document.ontouchmove = function() 
  _idleSecondsCounter = 0;
  ;
window.setInterval(CheckIdleTime, 1000);

function CheckIdleTime() _idleSecondsCounter++;

  var oPanel = document.getElementById('SecondsUntilExpire');
    if (oPanel)oPanel.innerhtml = (IDLE_TIMEOUT - _idleSecondsCounter) + '';
    if (_idleSecondsCounter >= IDLE_TIMEOUT) 
         alert('InAppBrowser will now close!');
         //I will need to add the ref.close() but it's not working.
         

出现警报,但 .close() 无法正常工作,因为它没有将值返回给 InAppBrowser 请提供任何帮助

【讨论】:

或者有没有办法跟踪你的inappbrowser是否空闲?【参考方案2】:

您可以使用链接https://github.com/phonegap/phonegap-plugins/tree/master/iOS/ChildBrowser中的ChildBrowser插件,而不是使用Phonegap的“InAppBrowser”插件

我之前尝试过使用“InAppBrowser”,但我对它不满意,因为它没有为我提供必要的功能,例如 onLocationChange 事件等,并且在使用它时存在问题。所以我总是使用 ChildBrowser 插件。

希望对你有帮助!!!

【讨论】:

谢谢@MrudulaChunduri 我想试试这个,但我不明白文件分发结构..我在哪里托管这些文件?它是在一个文件夹中还是在不同的文件夹中,因为它对我来说看起来有点奇怪。我仍然是一个婴儿 phoneGap 开发者。谢谢 对于 IOS,链接中的 *.h、*.m 和 *.xib 文件应添加到应用程序的 plugins 文件夹中。您可以在 www 文件夹中添加 ChildBrowser.js is ay 文件夹,并在 index.html 页面中引用它。然后你需要在你的 config.xml 文件中引用这些。我了解您使用的是cordova2.9.0,因此将此代码添加到config.xml 文件中 现在您可以使用 window.plugins.childBrowser.showWebPage("google.com"); 在代码中任意位置调用子浏览器插件 谢谢@Mrudula Chunduri @kontur 你可以在这个git hub repo github.com/purplecabbage/phonegap-plugins的IPhone 和android 文件夹下找到childbrowser 插件

以上是关于phonegap Inappbrowser 不显示位置栏(ios)的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap/Cordova InAppbrowser 文件下载问题

Phonegap inappbrowser 不工作

如何从 InAppBrowser 中调用 Phonegap 插件?

Inappbrowser 科尔多瓦不显示顶部栏

phonegap inappbrowser IOS 不工作

如何在inappbrowser中更改phonegap 3.4中的状态栏颜色?