Cordova/Phonegap 通过 JavaScript inappbrowser 打印

Posted

技术标签:

【中文标题】Cordova/Phonegap 通过 JavaScript inappbrowser 打印【英文标题】:Cordova/Phonegap print via JavaScript inappbrowser 【发布时间】:2014-08-09 14:18:11 【问题描述】:

我想从我正在开发的 iPad 应用程序中打印一个页面(或一些页面)。应用启动时的第一件事是通过以下代码加载外部网站:

window.location = https://*****.**;

我现在想从这个外部网站打印一些东西(在 iPad 上的 Safari 中效果很好)。试试这个简单的代码

window.print();

但它在 Cordova/Phonegap 的包装网络应用程序中不起作用。

我知道有这方面的插件> 但是那些需要 js/html 代码在本地才能工作,对吧?

有什么建议可以在我的应用中提供打印功能吗?非常欢迎任何建议,希望有一个简单的方法!

谢谢!

【问题讨论】:

【参考方案1】:

我知道这是一个老问题,但到目前为止还没有回答,我遇到了同样的问题。

将您通过 ajax 访问的页面加载到本地 javascript 变量中,并将包含您要打印的 html 的本地变量发送到打印插件的打印功能。

如果你想打印当前页面,只需将内容放入一个局部变量中,然后发送给你的打印插件。

https://github.com/hazemhagrass/phonegap-print

您可以使用 jQuery $.ajax、XmlHttpRequest 或任何您想将 html 字符串放入本地变量的方法。

示例用法(需要 jQuery):

$.get('https://*****.**',function(html)
    window.app.print(data,
        function()
            console.log('success');
        ,
        function()
            console.log('error');
        
    );
);

***OR***

var html = $('body').html();
window.app.print(html,
    function()
         console.log('success');
    ,
    function()
         console.log('error');
    
);

window.app = window.app || ;
window.app.print = function(html,successCallback,errorCallback) 
    successCallback = successCallback|| function();
    errorCallback = errorCallback|| function();
    var type = "text/html";
    var title = "test.html";
    var fileContent = html;
    window.plugins.PrintPlugin.print(
        fileContent,
        successCallback,
        errorCallback,
        "",
        type,
        title
    );
;

【讨论】:

看起来很简单,它可以工作 =) 还没试过,谢谢你的建议!

以上是关于Cordova/Phonegap 通过 JavaScript inappbrowser 打印的主要内容,如果未能解决你的问题,请参考以下文章

Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例

通过 cordova / phonegap 构建过程为 ios 应用程序设置架构

通过 Cordova/Phonegap 应用程序创建一个可以由另一个应用程序 (ios) 打开的文件?

Cordova/Phonegap 无法识别 FileTransfer

在 iOS 上调试 Cordova (PhoneGap) 代码

Cordova / Phonegap 应用程序 - 更改 Facebook 帐户