这是index.HTML.我正在使用inappbrowser(位置设置为no).
<!DOCTYPE HTML PUBliC "-//W3C//DTD xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-Transitional.dtd"><HTML xmlns="http://www.w3.org/1999/xhtml" ><head> <Title>Emerald Test App</Title> <Meta name="apple-mobile-web-app-capable" content="yes" /> <Meta name="vIEwport" content="wIDth=device-wIDth" /> <script src="phonegap.Js"></script> <script type='text/JavaScript'> var ref = null; function onLoad() { document.addEventListener("deviceready",onDeviceReady,false); } function onDeviceReady() { var url = 'https://my-CMS-site.com/content.aspx?page_ID=31&org_ID=1&app=1'; var target = '_blank'; var options = "location=no" ref = cordova.InAppbrowser.open(url,target,options); }</script></head><body onload="onLoad()"></body></HTML>
我想要做的是在系统浏览器中打开链接 – 从我通过inappbrowser加载的外部站点
我已经尝试使用类似的文档和文章中的帖子下载文件
<script type="text/JavaScript"> window.open(url,'_system');</script>
和_blank,并添加’location = no’等,但没有骰子.这些是从我的远程站点加载的外部页面.
点击这些链接后,它们将在同一浏览器(inappbrowser或webvIEw)中打开并接管浏览器.我想要做的是在另一个系统浏览器(Chrome,safari,无论如何)中打开这些.这将照顾我的下载问题(因为文件将希望在系统浏览器中打开,用户可以知道如何处理它们).
我试图添加一个事件监听器,并执行脚本来返回一个href的值.然后将该值用于window.open(href,’_ system’);从index.HTML(而不是远程页面).因为在索引上,我仍然会参考inappbrowser.
ref.addEventListener( "loadstop",function() { ref.executeScript( { code: "var gbal = null; $('a').on('click',function() { gbal = $(this).attr('href'); }); (function runIt() { return gbal })();" },function( values ) { if (values != null) { //alert( values[ 0 ] ); window.open(values[0],'_system'); } } ); }); }
值[0]始终为空.这似乎表明我没有正确地在代码中执行某些 *** 作:执行脚本的一部分 – 或者$(this)并不是这样的
所以,大问题 – 如何在系统浏览器中打开外部站点的链接.在我的远程站点上调用时,window.open(‘whatever.htm’,’_XXXXX’)没有区别.我使用事件侦听器在正确的轨道上吗?
解决方法 在这里回答我自己的问题,所有面对类似情况的人都可以得到一个坚实的答案.我从其他职位,参考资料和文件中拼出来.所以你想打开一个外部浏览器的链接,在InAppbrowser的远程加载站点?
在您的远程站点上,您需要在您的cordova.Js文件,cordova_plugins.Js文件中包含一个脚本src,并且包含您的plugins文件夹.这些文件必须托管在远程站点上.
如果我知道这是“应用程序”,我选择加载有条件的.加载后的cordova文件会抛出一系列的警报,所以你不会加载这些,除非你知道这是应用程序.
你在哪里得到这些文件?我安装了Phonegap Desktop并使用了构建文件,但是有一些引用错误.我改为使用Phonegap Build,并从APK中提取文件.将appname.apk重命名为appname.apk.zip并将需要的Js文件解压缩/复制到我的服务器. *平台差异有一些问题,而cordova.Js文件需要修改并有条件地加载iOS / AndroID.
这些是必要的,因此您可以对inappbrowser进行处理(在我的“关闭应用程序”要求 – 导航器)的情况下.
在我的远程(外部)站点(在加载了cordova / plugins后),我现在可以通过简单的调用关闭应用程序
navigator.app.exitApp();
在我的远程(外部)网站载入inappbrowser的页面中,现在我可以通过执行以下 *** 作来打开外部页面中的链接:
<a onclick="loadUrl('http://Google.com'); return false;" href="#">Test link,don't click</a><script type="text/JavaScript">$('.closeapp').click(function() {navigator.app.exitApp(); //this only works on AndroID. iOS doesn't allow for programmatic exit});function loadUrl(url){ navigator.app.loadUrl(url,{ openExternal:true }); return false;}</script>
我打算使用jquery修改loadURL函数,点击并处理一个类.就像是:
$('.downloadable').click(function() {var url = $(this).attr('href');navigator.app.loadUrl(url,{ openExternal:true });});
以上仅适用于AndroID.
尝试一个香草window.open(‘http://www.whatever.com‘,’_system’)不会从我的外部网站在iOS中打开一个外部浏览器.我想到在我的外部网站内部使用另一个ref = cordova.inappbrowser.open()那不行.任何人都有什么想法?
以上是内存溢出为你收集整理的android – Phonegap Build CLI-5.2.0从Web应用程序中下载并关闭全部内容,希望文章能够帮你解决android – Phonegap Build CLI-5.2.0从Web应用程序中下载并关闭所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)