> For the complete documentation index, see [llms.txt](https://docs.apryse.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.apryse.com/ios/guides/cordova/pdftron-ionic-cordova-options.md).

# Options for PDF viewing in Ionic and Cordova

Discover the best options for displaying PDF and Office documents in Ionic and Cordova apps with Apryse. Learn about native plugin benefits and WebViewer strengths for optimal performance and user exp

Apryse offers two options for displaying PDF and Office documents in Ionic and Cordova apps. Both offer offline functionality and the ability to view and annotate PDF documents.

This guide explains the options and their relative strengths.

## 1. Native plugin

The native plugin provides a JavaScript interface to Apryse's native mobile SDKs ([iOS](https://apryse.com/products/mobile-sdk/ios), [Android](https://www.pdftron.com/pdf-sdk/android/)). The JavaScript bridge API is identical for iOS and Android, and designed to mirror the WebViewer API.

The native plugin supports displaying the document viewer/annotator full screen, or over an area specified by a `<div>`.

The relative strengths of using a native plugin over the WebViewer option (discussed below) are:

* **Performance**: true native performance for scrolling, zooming and animations.
* **Appearance**: native controls that appear and behave in accordance with platform norms and possibly user expectations.
* **Rendering speed**: good rendering speed on all devices, including older models with limited memory.
* **PDF streaming**: The native plugin supports [streaming](/ios/viewer/view-online-pdfs.md), where a remote PDF is viewable before it has been downloaded in its entirety, and can even be configured to only download the pages of a PDF that are actually viewed by the user, saving on mobile data usage.

## 2. WebViewer

[WebViewer](https://www.pdftron.com/webviewer/) is a JavaScript document viewer and PDF renderer. It is built from the ground up for "the web": desktop browsers, mobile browsers and Ionic/Cordova apps.

The relative strengths of using WebViewer inside your Ionic/Cordova app are:

* **Extensive API**: The full WebViewer API is immediately available. (The native plugins currently expose a limited subset of their APIS to JavaScript.)
* **Identical API**: The API used for a website written using WebViewer will be 100% identical that used in the Ionic/Cordova app.
* **Identical UI**: The UI is the same across all devices (rather than adopting the platform's UI norms).
* **.xod files** The WebViewer can open and render .xod files, which are PDF files that have been optimized for web-viewing (PDF files can also be rendered directly, but with degradation in performance).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.apryse.com/ios/guides/cordova/pdftron-ionic-cordova-options.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
