我有一个网络应用程序,托管在一个phonegap应用程序中(我使用phonegap构建)
设置很简单,但在这种情况下并不重要。无论如何我都会告诉你,因为有时魔鬼就在细节中,对吧? :)
详情
phonegap应用程序实际上只是一个单一html的最小设置。那个html实际上是一个闪屏 - HTML的背景有一个图像。有一个元刷新标记,设置为将页面重定向到外部URL。我从现在起称它为myurl.com。
myurl.com的网站是使用jquery mobile和angularjs构建的。我使用那个浮动的适配器来处理两个想要在页面加载时操作dom的框架的问题。这是应用程序实际托管的域以及整个应用程序的运行位置。
设置
一个页面包含指向外部页面的链接。该页面有一个javascript引导程序,显示一些奇特的东西。如果您点击该链接 - 您的应用会将您带到该页面。那样太好了!它实际上适用于所有设备。在我的桌面浏览器和Android应用程序上,我只需点击硬件(或浏览器)BACK按钮,然后我就会回到myurl.com上的应用程序。另一方面,Iphone没有后退按钮:(
我的第一次尝试是创建一个目标网页,其中包含一个后退按钮/链接和一个用于托管花哨页面的iframe。它适用于桌面和Android,即使我在控制台中遇到一些异常/错误。它不会加载到iPhone上 - 我只能怀疑安全问题。我被告知,我正在尝试用iframe进行的操作无效,我认为是真的。
我该如何处理?我实际上尝试过这样的InAppBrowser:
var ref = window.open(url, 'random_string', 'location=yes');
我检查了我的config.xml有这个:
<preference name="stay-in-webview" value="false" />
我也将此添加到我的页面中:
<script stype="text/javascript" src="phonegap.js"></script>
保留phonegap.js文件,因为phonegap build承诺包含正确的版本。
它仍然在相同的视图/应用程序中打开页面而无法返回 - 我得到的结果与正常方式打开链接相同。
帮助我{在这里插入jedi名字},你是我唯一的希望!
修改 我发现了这个问题。 phonegap.js文件自动部署在设备上,因此只有第一个index.html(带有元刷新)才能正确链接。 myurl.com上的页面未链接到该文件。我将phonegap.js放在myurl.com上,它正在运行。唯一的问题,每个设备的phonegap.js是不同的 - 这意味着只有我选择的phonegap.js设备正在运行 - 其他设备坏了!
我可以链接到原生应用文件的任何地方吗?我试过file:/// {path} /phonegap.js但它不起作用。我可以看到/猜测每个设备不同的路径,但对于iphone而言 有效负载{name} .app \ www - 它不会从那里加载...我也试过
http://localhost/phonegap.js
但这也不起作用。
有什么想法吗?
最终编辑
我决定回到绘图板并将所有html文件放在设备上。我将在我的ajax api上实现JSONP,这样我就可以让API在myurl.com上运行并仍然可以通过手机访问它。它可能也是制作phonegap应用程序的预期方式 - 我只是更喜欢其他方法......
答案 0 :(得分:0)
前几天我实际上只回答了这样的问题。你可以找到它here。简而言之,见下文:
<script src="phonegap.js"></script>
要在inappbrowser中打开链接,请使用此javascript:
function openURL(urlString){
myURL = encodeURI(urlString);
window.open(myURL, '_blank');
}
这将打开inappbrowser中传递的URL。如果您将window.open(myURL, '_blank');
更改为window.open(myURL, '_system');
,则会在系统浏览器中打开传递的网址。
最后,您的商品点击如下所示:
<a href='#' onclick='openURL("http://www.urlyouwant")/>
此外,根据您使用的手机版的版本,stayinwebview会被折旧。
***根据您的编辑:不要将phonegap.js放在项目目录中。当您将其上传到构建时,它会将其包含在您的项目中。