我想在Android中使用phonegap InAppBrowser显示外部PDF,但它不起作用.
这是我的JS代码:
<script>
function openPDF() {
var ref = window.open('http://www.i-drain.net/userfiles/file/einbauanleitung_iboard.pdf', '_blank', 'location=yes');
ref.addEventListener('loadstart', function(event) { alert('start: ' + event.url); });
ref.addEventListener('loadstop', function(event) { alert('stop: ' + event.url); });
ref.addEventListener('loaderror', function(event) { alert('error: ' + event.message); });
ref.addEventListener('exit', function(event) { alert(event.type); });
}
</script>
Run Code Online (Sandbox Code Playgroud)
我想在点击图片后打开pdf,所以我使用这个HTML代码:
<a href="#" onclick="openPDF()" >
<img src="images/button.png">
</a>
Run Code Online (Sandbox Code Playgroud) 我正试图通过PhoneGap应用程序在Safari(在iPhone上)打开链接.我正在使用PhoneGap 3.1.0版,并使用PhoneGap Build来构建应用程序.
我在页面上有两个链接(如下面的www/index.html所示).两个链接都在PhoneGap应用程序内打开.我可以看到PhoneGap已正确加载,因为警报('设备就绪!'); 被触发了.
我需要更改什么,在默认浏览器中打开链接(在应用程序外部)?
该WWW/config.xml的文件看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" id="com.company.appname" version="0.0.3">
<name>AppName</name>
<description>description</description>
<author href="http://www.example.com/" email="hello@example.com">
Company
</author>
<preference name="phonegap-version" value="3.1.0" />
<preference name="orientation" value="portrait" />
<preference name="stay-in-webview" value="false" />
<gap:plugin name="org.apache.cordova.inappbrowser" version="0.2.3" />
<gap:plugin name="org.apache.cordova.dialogs" version="0.2.2" />
<gap:plugin name="com.phonegap.plugins.pushplugin" version="2.0.5" />
<plugins>
<plugin name="InAppBrowser" value="CDVInAppBrowser" />
</plugins>
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
<access origin="*" />
</widget>
Run Code Online (Sandbox Code Playgroud)
该WWW/index.html的文件看起来像这样:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, …Run Code Online (Sandbox Code Playgroud) 我正在使用cordova InAppBrowser来显示我应用中外部网站的内容.当我在iPhone上打开浏览器时,InAppBrowser底部有一些按钮用于关闭它或来回导航.Android设备上的InAppBrowser没有这样的按钮,并且没有明显的方式让用户关闭浏览器.
我知道如何以编程方式关闭InAppBrowser,但是在使用Android设备时用户如何关闭它?
我知道用户能打到硬件后退按钮关闭浏览器,但(1)这不是直观的 - 后退按钮通常意味着"回去的网页",和(2)我最终想改变的行为返回按钮返回显示在InAppBrowser内部的站点内的页面,而不是关闭浏览器.
我正在研究基于离子框架的移动应用程序(主要针对Android).我的项目是基于标签的应用程序.在第一个标签中,我想加载一个外部网站,但我无法弄清楚如何做到这一点.
我尝试了ngCordova InAppBrowser,但它需要全屏,我的导航标签落后.
我也尝试加载一个iFrame,它在模拟器中工作,但这个解决方案在Android设备上根本不起作用并显示一个空的iFrame(除了它的定位限制,我认为我可以使用css对其进行排序).
有什么我想念的吗?有什么建议吗?
最终应用应该看起来像(它的原生iOS版本):

我需要在我的应用程序的某个部分内的所有链接在系统浏览器中打开.诀窍是这些链接来自外部源(API),因此我无法添加ng-click帮助我在外部打开链接的功能.
我正在使用应用内浏览器插件(ng-cordova).事实上,我有其他外部打开的链接,但在这种情况下链接可以在内容的任何部分,所以我的问题是如何在加载后将ng-click指令添加到所有链接?或者如果可能,如何配置应用程序内浏览器插件以打开系统浏览器中的所有链接?
顺便说一句,简单的链接即使在inappbrowser中也不会打开:我点击它们没有任何反应.
谢谢您的帮助
所以我有一个Phonegap项目,Phonegap 2.9.0并使用PhonegapBuild构建.
我在我的应用程序中有外部链接,我想打开inapp或使用我的应用程序之外的默认设备浏览器.我对两种解决方案都很满意.今天我的应用程序打开链接inapp但它全屏,没有缩放可能,并且没有按钮返回应用程序...
我试图找出解决方案几天,并在这里看同样的问题但没有任何工作好.
有人可以清楚地解释一下这些东西是什么,以及有什么不同的选择/参数,因为我可以说它根本不清楚/容易!
Q1:
我首先要问:在文件config.xml中,对于phonegap 2.3.0,现在不推荐使用首选的stay-in-webview吗?所以没什么好希望的?
Q2:我通过window.open和目标系统/ blank/self阅读并尝试了很多插件InAppBrowser,但对我来说没有任何区别.我留在InApp但没用,因为没有导航按钮.
我在这里错过了什么吗?
plugin name="InAppBrowser" value="CDVInAppBrowser"
Run Code Online (Sandbox Code Playgroud) 我正在使用离子框架来开发本机应用程序.在这里,我在所有页面中都有默认标题.切换到第二页时,我需要应用内浏览器来查看外部内容.
所以,我使用了window.open
<a href="#" onclick="window.open('https://google.com','_blank','location=yes','closebuttoncaption=Return');">Click Here to view inapp browser</a>
Run Code Online (Sandbox Code Playgroud)
但是,当我在应用程序内浏览器中查看内容时,我需要标题保持不变.
在离子骨架中有可能吗?我不需要iframe.它在html中很重.
更新:
我有一个html文件,我注入iframe.喜欢
<div id="header"></div>
<iframe src="serveraddress/index.html"></iframe>
Run Code Online (Sandbox Code Playgroud)
而不是iframe,还有什么东西仍然保持标头不变?如果我使用应用内浏览器,我的标题是不可见的.
示例移动应用程序将POST请求发送到HTTP服务器,我们使用该服务器处理从移动应用程序发送的信息.我们解析HTTP标头,并且所有具有不同操作系统的Android设备上的User-Agent标头始终被视为"Apache-HttpClient".
如果我在Android设备中从应用程序执行任何操作,它将返回用户代理为 Apache-HttpClient/UNAVAILABLE (java 1.4)
有什么问题?它没有提供一个用户代理字符串,其中包含操作系统信息和其他详细信息.有没有人见过类似的行为?
我正在将使用Phonegap构建的iOS应用程序移植到带有Phonegap 3.1的iOS7,我遇到了一个小问题.
iOS 7似乎已经在超链接中做了一些重大更改,target="_blank" attribute现在默认情况下在应用程序本身内打开,而不是在系统浏览器中(这似乎不会发生在Android或iOS的早期版本上).这打破了应用程序的一些功能,我需要纠正这个问题.
使用InAppBrowser插件似乎是要走的路,所以我已经安装了插件.我修改了我的config.xml以包含这个:
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
Run Code Online (Sandbox Code Playgroud)
现在模板中的链接看起来像这样(请注意我在这里使用Handlebars作为模板系统):
<a href="#" onclick="window.externalbrowser = window.open('{{this.url}}, ', '_system', 'location=yes');" data-transition="slide">
<img alt="Favicon" style="border: 1px solid #ccc;" title="Favicon" class="ui-li-icon" src="{{this.favicon_url}}"></img>
<p style="font-size: 100%"><strong>Submitted {{this.whenSubmitted}}</strong><br />Last changed {{this.lastChanged}}</p>
</a>
Run Code Online (Sandbox Code Playgroud)
每当我点击链接时,它都无法打开,我在日志中出现以下错误:
Plugin 'InAppBrowser' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
2013-11-08 10:22:56.753 MyApp[197:60b] -[CDVCommandQueue executePending] [Line 117] FAILED pluginJSON = [
"InAppBrowser814285423",
"InAppBrowser",
"open",
[
"http:\/\/www.site.co.uk\/deals-offers-savings\/b?ie=UTF8&node=350613011&tag=page0e-21,",
"_system",
"location=yes"
]
]
Run Code Online (Sandbox Code Playgroud)
关于CDVInAppBrowser.m …
我正在编写一个虚拟应用程序来测试Cordova的InAppBrowser插件中的executeScript()方法是如何工作的.特别是,我正在尝试在一个webview中注入一个javascript代码.
这里有我的index.html文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script type="text/javascript" src="phonegap.js"></script>
<script type="text/javascript" src="js/index.js"></script>
<title>InAppBrowser Injection Test</title>
</head>
<body>
<div class="app">
<h1>Testing Injection</h1>
<div id="deviceready" class="blink">
<p class="event listening">Starting Mother WebView</p>
<div class="event received">
<p>Device is Ready</p>
</div>
</div>
</div>
<script type="text/javascript">
app.initialize();
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
和index.js文件
var app = {
initialize: function() {
this.bindEvents();
},
bindEvents: function() {
document.addEventListener('deviceready', …Run Code Online (Sandbox Code Playgroud) inappbrowser ×10
cordova ×8
javascript ×3
android ×2
angularjs ×2
html ×1
html5 ×1
ios ×1
ios7 ×1
user-agent ×1