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网站会要求包含<script src="cordova.js"></script>
,我把它拿出来并且它运行良好,我还必须使用@手动将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 文件中以上是关于phonegap Inappbrowser 不显示位置栏(ios)的主要内容,如果未能解决你的问题,请参考以下文章
Phonegap/Cordova InAppbrowser 文件下载问题