- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我将 Xcode 4 与 PhoneGap (Cordova 1.6) 和 ChildBrowser 一起使用。我在 OSX 上使用 SiteCrawler 成功下载了一个网站并对其进行了本地化,它可以在本地完全浏览图像、PDF 等。我已将所有本地化的站点文件移动到 PhoneGap www 文件夹中,应用程序测试构建良好 -网站完全可以浏览。
我希望站点上的 PDF 在它们自己的窗口中打开,ChildBrowser 可以完美地满足我的需要。使用 http://blog.digitalbackcountry.com/2012/03/installing-the-childbrowser-plugin-for-ios-with-phonegapcordova-1-5/我能够安装 ChildBrowser 并正常工作 - 我在 ChildBrowser 中打开了 PDF 文件。
我的问题是,使用上面的链接,我必须添加 ontouchstart="loadChildBrowser('/path/to/file.pdf'); return false;"到网站上的每个 PDF 链接。由于我们使用 CMS,这不是什么大问题 - 大部分 PDF 都是从模板调用的,数据从 CMS 填充,它们很好。但是在站点中的某些页面中,客户已将指向上传的 PDF 的链接添加到页面内容中。在这种情况下,没有简单的方法可以将上述代码添加到内联链接中。
我想我可以使用 jQuery 在点击时查看页面上的每个标签,如果点击,运行 ChildBroswer 实例,这将涵盖两种类型的 PDF 链接,但我似乎无法做到工作。这是我所拥有的:
<script type="text/javascript" src="/a/js/cordova-1.6.0.js"></script>
<script type="text/javascript" src="/a/js/ChildBrowser.js"></script>
<script>
// install ChildBrowser
var cb = ChildBrowser.install();
//loading a web page in ChildBrowser
$('a[href$=pdf]').click(function() {
var href = $(this).attr('href');
cb.showWebPage(encodeURI(href));
return false;
});
</script>
使用上面没有内联链接 javascript 的 PDF,PDF 会在没有子浏览器的情况下自行打开。
将下面的内容与 ontouchstart="loadChildBrowser('/path/to/file.pdf'); return false;"一起使用,子浏览器将打开,并且对于某些链接显示 PDF,而对于其他链接则只显示加载。我认为这只是对路径进行了调整,但我认为如果可以使上述内容发挥作用,它将是最通用的。
<script type="text/javascript" src="/a/js/cordova-1.6.0.js"></script>
<script type="text/javascript" src="/a/js/ChildBrowser.js"></script>
<script>
// install ChildBrowser
var cb = ChildBrowser.install();
//loading a web page in ChildBrowser
function loadChildBrowser(file) {
cb.showWebPage(encodeURI(file));
}
</script>
最佳答案
通过反复试验,我能够使它在大多数情况下正常工作。我仍然遇到一些不相关的错误(好吧,与 Childbrowser 有关,但与加载本地 PDF 文件无关)。
因此,使用 ontouchstart="loadChildBrowser('/path/to/file.pdf'); 返回 false;"在网站上所有指向 PDF 的链接上仍然是可行的方法。发生变化的是我用来确定 PDF 路径和启动 ChildBrowser 的 JS 函数。我必须这样做:
<script type="text/javascript" src="/a/js/cordova-1.6.0.js"></script>
<script type="text/javascript" src="/a/js/ChildBrowser.js"></script>
<script>
// install ChildBrowser
var cb = ChildBrowser.install();
//loading a web page in ChildBrowser
function loadChildBrowser(file) {
var path = location.pathname+file;
var len = path.length;
var locleft = path.indexOf('/www/')+4;
var trim = len-locleft;
var left = path.slice(0,-trim);
var locright = path.indexOf('/assets/');
var trim = len-locright;
var right = path.slice(-trim);
var finalPath = left+right;
cb.showWebPage(encodeURI(finalPath));
}
</script>
在我包含的头文件中(因此它位于网站每个页面的头部)。问题是,当 ChildBrowser 提取文件路径时,它会将正常站点的 Web 根目录 (/assets/documents/xxx.pdf) 下面的部分附加到当时在应用程序中查看的页面的完整路径,所以我最终得到:
/var/users/name/blah/blah/www/page.html/assets/documents/xxx.pdf
当我们想要的时候:
/var/users/name/blah/blah/www/assets/documents/xxx.pdf
上面的脚本将 location.pathname 添加到从调用 ChildBrowser 的函数 (ontouch start) 传递的文件 var 中,以便我们最终得到
/var/users/name/blah/blah/www/page.html/assets/documents/xxx.pdf(不正确)
然后它将其拆分为左侧部分(/www 之前的所有内容)和右侧部分(包括/assets/之后的所有内容),然后将它们连接起来(有效地删除所有站点目录和 html 文件信息),然后调用 ChildBrowser与那个finalPath。为我工作。
关于ios - 如何让ChildBrowser打开所有PDF文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10310519/
尝试使用 phonegap 1.4.1 + phonegap 的子浏览器插件制作应用程序。我一直在遵循指南并深入研究这个主题,但我遇到了一个我无法理解的错误。 我已将 childbrowser.jav
我正在使用PhoneGap构建iPhone应用程序。我正在使用ChildBrowser插件。 如果我的应用程序中有一个带有用户名/密码的表单,是否可以将那些信息发布到诸如www.mydomain.co
在我的应用程序中寻找合适的方式打开浏览器后,我发现了 ChildBrowser,它似乎提供了我想要的一切。在学习了一些教程之后,我似乎无法让插件正常工作。我为外部主机编辑了我的 PhoneGap.pl
在 ChildBrowser.java (2.0.0) 中线路:356科尔达瓦:2.9.0 是语法错误: 方法 setPluginsEnabled(boolean) 未定义类型 WebSetting
我想知道是否可以在phonegap childbrowser窗口中执行JavaScript,以便我们可以在phonegap应用程序下操作网站? 从大局来看,我们可以在 Objective-C 中创建一
我正在用phonegap 开发一个应用程序。我想在我的应用程序中集成foursquare。 我如何存储和检索 Foursquare 的访问 token 以在我的应用程序中使用它? 最佳答案 当我快速查
我有一个小问题,有人可以指点我正确的方向。因为我是一个网络人,但对 objective-c . 我正在尝试使用 javascript 从网站检索一些信息在我的项目中需要我向其发布登录信息(没有使用 J
我有两个问题,应该提到我是一名进入网络/移动世界的 Java 程序员。 使用 PhoneGap 的 childbrowser 插件 我想在初始屏幕后直接重定向到网页 我现在尝试通过使用 documen
使用 child 浏览器。我的案例: 有一个index.html文件和test.html。 前往 test.html 从 test.html 启动 Childbrowser 我按下左上角的“完成”按钮
我在使用这两个 PhoneGap 插件时遇到问题:“BarcodeScanner”和“ChildBrowser”(在 iOS 应用程序中,使用 XCode 4 和 PhoneGap 2.0)。 我的应
我正在使用 ChildBrowser iOS cordova 插件来显示 pdf 文件。当我严格滚动在子浏览器插件中打开的pdf文件时,应用程序崩溃并在控制台中打印以下消息。似乎是某种内存问题 Feb
我使用的是适用于 iOS 5.0、XCODE 4.2、phonegap 1.1.0 的 child 浏览器,我只能在纵向模式下打开它。我的应用程序支持所有 4 个 View ,但是当我选择一个 Vie
我正在为 iOS 构建一个 PhoneGap 1.5 (Cordova) 应用程序,并希望使用 ChildBrowser 插件来显示 PDF 文件。我已经能够对其进行设置,并且在查看外部 PDF 文件
我使用 Phonegap Childbrowser 进行 oAuth 2.0 身份验证。身份验证后,我想在网页中使用 Javascript 隐藏 Childbrowser,而无需按“完成”按钮。如何做
我已经在 Android 应用程序上成功集成了 phonegap + childbrowser。现在我想在我的应用程序中集成 Twitter 共享。我按照教程 http://www.wisejive.
我有一个问题,当我弹出一个子浏览器时:如果用户正在使用他们的 3G 或连接速度很慢,在加载任何内容之前可能会有很长的等待时间(只是一个空白的白屏)。 有没有一种方法可以最小化或隐藏子对话框,直到它加载
我正在尝试让本地 cookies (file://) 在 android 3.1+ 上工作在 child 浏览器中。我发现一个博客回复谈论这个具体问题以及如何使用 Cookie 管理器进行补救。我不能
使用phonegap制作iOS应用时,ChildBrowser插件可以打开一个可以使用phonegap功能的远程页面吗? 例如:在phonegap应用程序中的index.html,调用childbro
我目前正在使用 phoneapp 中的 ChildBrowser 打开网站。但是,我想打开此网站的所有外部链接以在 Safari 中打开。 我无法控制本网站的来源。 我的理解是,我必须修改 Child
我需要在我的 phonegap 应用程序中显示一个网页,并且能够应用一个新的 css 文件来覆盖显示 - 或者可能有一种不用 css 的不同方法? 我知道这必须是可能的,因为如果我在桌面上使用 moz
我是一名优秀的程序员,十分优秀!