android – Phonegap Build CLI-5.2.0从Web应用程序中下载并关闭

android – Phonegap Build CLI-5.2.0从Web应用程序中下载并关闭,第1张

概述我一直在摔跤,打开窗口打开,使用inappbrowser从我的应用程序.基本上,我正在使用phonegap作为一个包装,加载一个移动皮肤的CMS站点与特殊的应用程序功能. 这是index.html.我正在使用inappbrowser(位置设置为no). <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww 我一直在摔跤,打开窗口打开,使用inappbrowser从我的应用程序.基本上,我正在使用phonegap作为一个包装,加载一个移动皮肤的CMS站点与特殊的应用程序功能.

这是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应用程序中下载并关闭所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1132852.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存