With the react-native-h5mag framework, you can easily access H5mag public API
source link: https://reactnativeexample.com/with-the-react-native-h5mag-framework-you-can-easily-access-h5mag-public-api/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
React-native-h5mag
Welcome to the react-native-h5mag framework readme.
With the react-native-h5mag framework, you can easily access H5mag public API. It is a flexible framework that developers can use in new and existing React Native projects.
React-native-h5mag supports both iOS and Android and has been tested on the following OS versions:
OS | Versions |
---|---|
iOS | 12.4, 15.0, 15.4 |
Android | 7.0 – 12.0 |
Installation
You need NPM to install the H5mag framework. For installation use this command:
npm i @h5mag/react-native-h5mag
Usage
In order to use the API, you will need to set the API key first. Here is an example:
// App.js
import H5mag from 'react-native-h5mag';
H5mag.setApiKey('h5_public_Fn30x...Wvay2g');
API
After setting the API key you can use the functions below.
getProjectAndEditions
async getProjectAndEditions() : Promise<any>
Retrieves one project.
Parameter | Type | Description |
---|---|---|
projectDomain | string | Your project domain (e.g. name of your project) |
options | object | Extra options — See options table below |
Options object:
Parameter | Type | Description |
---|---|---|
apiKey | string | Manually set/override API key |
sort | boolean | Sort editions by date |
Example:
const getProjectData = async () => {
try {
await getProjectAndEditions(projectDomain, { sort: true }).then((result) => {
// Do something with the project data...
});
} catch (error) {
console.error(error);
}
};
getProjectsList
async getProjectsList() : Promise<any>
Retrieves all projects.
Parameter | Type | Description |
---|---|---|
options | object | Extra options — See options table below |
Options object:
Parameter | Type | Description |
---|---|---|
apiKey | string | Manually set/override API key |
filterByHasLatestEdition | boolean | Only retrieves projects with at least one published edition |
Example:
const getProjectsData = async () => {
try {
const response = await getProjectsList({ filterByHasLatestEdition: true });
// Do something with the projects data...
} catch (error) {
console.error(error);
}
};
downloadEdition
downloadEdition() : Promise<any>
Downloads the specified editon.
Parameter | Type | Description |
---|---|---|
targetPath | string | Path to folder location of edition |
charset | string | Character set to use (e.g. UTF-8) |
editionPath | string | Path of edition (e.g. /editionName) |
projectDomain | string | Domain name of project (e.g. testproject) |
options | object | Extra options — See options table below |
Options object:
Parameter | Type | Description |
---|---|---|
apiKey | string | Manually set/override API key |
Example:
// You could get the **editionPath** and **projectDomain** through props.
const targetPath = (Platform.OS === 'android' ? DocumentDirectoryPath : MainBundlePath) + '/' + projectDomain + edition.path;
const charset = 'UTF-8';
const startEditionDownload = () => {
downloadEdition(targetPath, charset, editionPath, projectDomain).then((result) => {
if (result === 'downloaded') {
// Do something after the edition has been downloaded....
}
}).catch((err) => {
console.log(err);
});
};
deleteEdition
deleteEdition() : Promise<any>
Deletes the specified folder and all files in it.
Parameter | Type | Description |
---|---|---|
targetPath | string | Path to folder location of edition |
Example:
deleteEdition(targetPath).then((result) => {
if (result === 'deleted') {
// Do something after the deletion...
}
});
readEditionOffline
readEditionOffline() : Promise<any>
Starts a local server for offline edition reading.
Parameter | Type | Description |
---|---|---|
osPath | string | Path of the root app folder |
targetPath | string | Path to folder location of edition |
Example:
const osPath = Platform.OS === 'android' ? DocumentDirectoryPath : MainBundlePath;
readEditionOffline(osPath, targetPath).then((result) => {
if (result === 'success') {
// Server is ready!
// Update a state...
}
});
if (readyToReadEdition) {
return (<EditionReader targetPath={targetPath} />);
}
Components
EditionReader
<EditionReader targetPath={...} />
The EditionReader component uses a Webview wrapped inside a SafeAreaView to load the selected edition.
Building react-native-h5mag
Ensure you have npm installed
mpm install -g bob
npm pack
License
GitHub
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK