Phonegap打印插件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Phonegap打印插件相关的知识,希望对你有一定的参考价值。

我试图使用katzer https://github.com/katzer/cordova-plugin-printer的打印插件

我做了所有它说但我不知道如何调用index.html文件上的函数,看看该插件是否正常工作。

这是index.html

<!DOCTYPE html>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<html>
<head>
    <meta charset="utf-8" />
    <meta name="format-detection" content="telephone=no" />
    <!-- WARNING: for ios 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
    <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/index.css" />
    <meta name="msapplication-tap-highlight" content="no" />

</head>
<body>
    <div class="app">

        <div id="deviceready" class="blink">
            <p class="event listening">Connecting to Device</p>
            <p class="event received">Device is Ready</p>

            <script src="plugins/com.phonegap.plugins.barcodescanner/www/barcodescanner.js"></script>
        </div>
    </div>
    <script type="text/javascript" src="cordova.js"></script>
    <script type="text/javascript" src="cordova_plugins.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
    <script type="text/javascript" src="plugins/de.appplant.cordova.plugin.printer/www/printer.js"></script>
    <script>
        app.initialize();
        alert(isAvailable ? 'Service is available' : 'Service NOT available');

    </script>

</body>

}

这是config.xml

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.example.HS" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<preference name="AllowInlineMediaPlayback" value="false" />
<preference name="AutoHideSplashScreen" value="true" />
<preference name="BackupWebStorage" value="cloud" />
<preference name="DisallowOverscroll" value="false" />
<preference name="EnableViewportScale" value="false" />
<preference name="FadeSplashScreen" value="true" />
<preference name="FadeSplashScreenDuration" value=".25" />
<preference name="KeyboardDisplayRequiresUserAction" value="true" />
<preference name="MediaPlaybackRequiresUserAction" value="false" />
<preference name="ShowSplashScreenSpinner" value="true" />
<preference name="SuppressesIncrementalRendering" value="false" />
<preference name="TopActivityIndicator" value="gray" />
<preference name="GapBetweenPages" value="0" />
<preference name="PageLength" value="0" />
<preference name="PaginationBreakingMode" value="page" />
<preference name="PaginationMode" value="unpaginated" />
<feature name="LocalStorage">
    <param name="ios-package" value="CDVLocalStorage" />
</feature>
   <name>HelloCordova</name>
<description>
    A sample Apache Cordova application that responds to the deviceready event.
</description>
<author email="dev@cordova.apache.org" href="http://cordova.io">
    Apache Cordova Team
</author>
<content src="index.html" />
<access origin="*" />
<feature name="BarcodeScanner">
    <param name="ios-package" value="CDVBarcodeScanner" />
</feature>
<feature name="Printer">
    <param name="ios-package" value="APPPrinter" />
</feature>
<gap:plugin name="de.appplant.cordova.plugin.printer" />
<gap:plugin name="com.phonegap.plugins.barcodescanner" />

答案

把一个cordova onDeviceReady事件。

document.addEventListener("deviceready", onDeviceReady, false);

// Cordova Device Ready.
function onDeviceReady() {

cordova.plugins.printer.isAvailable(
    //Check whether the printer is available or not.
    function (isAvailable) {
         //Enter the page location.
         var page = location.href;
         cordova.plugins.printer.print(page, 'Document.html', function () {
         alert('printing finished or canceled')
});
    }
);

}
  1. 打印整个HTML页面 // index.html var page = location.href的URI; cordova.plugins.printer.print(页面,'Document.html',function(){alert('打印完成或取消')});
  2. 从页面的一部分打印内容 // DOM节点或字符串var page = document.getElementById('legal-notice'); cordova.plugins.printer.print(页面,'Document.html',function(){alert('打印完成或取消')});
  3. 打印自定义特定内容

// DOM节点或字符串

var page = '<h1>Hello Document</h1>';    
cordova.plugins.printer.print(page, 'Document.html', function () {
    alert('printing finished or canceled')
});
  1. 打印远程网页 cordova.plugins.printer.print('http://blackberry.de','BB !!!',function(){alert('打印完成或取消')});
  2. 调整页面 cordova.plugins.printer.print('123',{name:'Document.html',landscape:true},function(){alert('printing finished or canceled')});
  3. iPad上的自定义尺寸和位置 //选项一cordova.plugins.printer.print('123',{bounds:[40,30,0,0}}); //选项二cordova.plugins.printer.print('123',{bounds:{left:40,top:30,width:0 height:0}});

请参阅您提供的链接末尾的自述文件。

另一答案

像其他答案所说,只需调用“cordova.plugins.printer.print()”函数进行打印。但是,这里的一个重要阻力就是平台......

默认的cordorva打印机插件尚不支持“windows”平台。所以,如果你在窗户上工作,没有运气。您必须将其构建为App / Apk并安装到手机上以测试此功能。

如何针对每个移动平台构建它是不可能的,所以,是的,请参阅完整的文档...

一种快速方法是通过Adobe PhoneGap构建来构建项目,并下载apk以查看它在手机上的工作方式。希望这可以帮助。

以上是关于Phonegap打印插件的主要内容,如果未能解决你的问题,请参考以下文章

从 uiwebview (iOs) 打印本地 html 文件

PhoneGap Windows8 的自定义插件将调用 c# 代码

Phonegap 2.8.1 iOS 分析插件

Phonegap 插件录制音频

不包括 Phonegap 构建插件

PhoneGap/Cordova iOS 播放声音禁用麦克风