【发布时间】:2014-02-28 16:09:20
【问题描述】:
我正在开发一个 PhoneGap/Cordova 应用程序,该应用程序用作加载和显示外部 URL 以使用以下代码将移动网站制作成应用程序的包装器:
window.open('http://www.website.com', '_self', 'location=no');
我想在加载时删除移动网站的某些元素,这些元素在应用中查看时不适用(例如“查看完整网站”)。
是否有任何方法可以从外部网站的 JavaScript 检测页面是否正在 PhoneGap/Cordova 应用程序中查看?
【问题讨论】:
-
你可以通过
user-agent获得一些运气,添加一个哈希怎么样?website.com/index.html#cordova=true. -
InAppBrowser 有一个
injectScript()方法,你可以用它来将一个标志注入到网页的全局上下文中,所以你是外部站点可以检查if( window.cordovaExists )什么的。跨度> -
@JamesWong 关于哈希的好主意,会尝试 - 但
user-agent不起作用,因为移动网站的所有功能仍然必须通过常规移动浏览器访问,当这些“查看完整网站”链接是必需的 -
@MBillau - 你的意思是
executeScript()? docs.phonegap.com/en/3.1.0/… -
是的,github.com/apache/cordova-plugin-inappbrowser/blob/dev/doc/… 我从未尝试过,但它可能是可能的。如果由于某种原因您实际上无法访问页面的窗口对象来设置全局变量,您可能会在页面上附加一个隐藏的 DOM 节点或其他东西。
标签: javascript cordova