"Home", "SELECT" => "Select...", "SELECT_CATEGORY"=> "Select Category", "CANT_CONNECT"=> "Can't Connect", "RETRY"=> "Tap to Retry", "CONNECTION_TIMEOUT"=> "Connection Timeout", "UNKNOWN_ERROR"=> "Unknown Error", "LOADING"=> "Loading...", "SHARE_TITLE" => "Hey, I found this interesting", "NEW_POST"=> "New Post", "NEW_POSTS"=> "new posts", "YEAR"=> "year", "MONTH"=> "month", "DAY"=> "day", "HOUR"=> "hour", "MINUTE"=> "minute", "SECOND"=> "second", "YEARS"=> "years", "MONTHS"=> "months", "DAYS"=> "days", "HOURS"=> "hours", "MINUTES"=> "minutes", "SECONDS"=> "seconds", "AGO"=> "ago", "BY"=> "by", "IN"=> "in", "NO_COMMENTS"=> "No comments yet, Be the first one to comment", "COMMENTS_TITLE"=> "COMMENTS", "COMMENT_EMPTY"=> "Comment field is Empty", "PROVIDE_EMAIL"=> "Please provide your name and email address", "SENDING_COMMENT"=> "Sending Comment...", "AWAITING_MODERATION"=> "Awaiting Moderation", "TYPE_MESSAGE"=> "Type Message", "TYPE_REPLY_MESSAGE"=> "Type Reply Message", "COMMENT_SETTINGS"=> "Comments Settings", "NAME"=> "Name", "EMAIL"=> "Email", "EMAIL_EMPTY"=> "Email can't be Empty", "VALID_EMAIL"=> "Please enter a valid email address", "ATLEAST_THREE_CHARS"=> "Please enter atleast 3 characters in name", "VALID_NAME"=> "Name can't be Empty", "SUBMIT"=> "Submit"); // Default values protected $op = array( IMAGE_DIMENSION => 'preview', EXCERPT_PREFERENCE => 'excerpt', POST_CONTENT => 'postprocessed', ENABLE_WP_SUPER_CACHE => '0' ); protected $buildop = array( FACEBOOK_APP_ID => '', GOOGLE_SENDER_ID => '' ); protected $accountop = array( NOTIFICATION_TYPE_KEY => 'single' ); public function getInstallLink($slug){ $action = 'install-plugin'; return wp_nonce_url( add_query_arg( array( 'action' => $action, 'plugin' => $slug ), admin_url( 'update.php' ) ), $action.'_'.$slug ); } public function __construct(){ add_action('admin_init', array($this,'admin_init')); add_action('admin_menu', array($this, 'add_page')); add_action('admin_notices', array($this, 'my_plugin_admin_notices')); $this->scriptOptions = get_option($this->scripts_option); if((empty($this->scriptOptions['scripts']) || ($this->scriptOptions['count'] < 5))) { add_action( 'print_scripts_array', array($this, 'add_scripts'), 999); add_action('wp_print_scripts', array($this, 'add_late_scripts'), 999); $this->scriptOptions['count'] = $this->scriptOptions['count'] +1; } if(!get_option(PW_ANDROAPP_VERSION_KEY)) { $this->addFigureCss(); update_option(PW_ANDROAPP_VERSION_KEY, $this->androappVersion); }else{ $oldVersion = get_option(PW_ANDROAPP_VERSION_KEY); if(!empty($oldVersion) && $oldVersion != $this->androappVersion ){ if( $this->androappVersion == 319){ $this->updateFor319(); } update_option(PW_ANDROAPP_VERSION_KEY, $this->androappVersion); } } } function my_plugin_admin_notices() { } public function installpwmobileapp() { $this->buildop[HOST_NAME] = get_bloginfo('url');; $this->buildop[APP_NAME] = get_bloginfo('name'); $this->buildop[EMAIL] = get_option('admin_email'); $this->buildop[AUTHENTICATION_KEY] = $this->getToken(64); $this->op[PWAPP_MENU] = $this->getFirstMenu(); $this->op[pw_mobile_app_settings::$androAppCss] = '#content-sidebar{ display:none; } #secondary { display:none !important; } .sidebar, .site-header, .footer-widgets { display:none; } #menu-header-menu{ display:none; }'; $this->op[pw_mobile_app_settings::$postProcessedCss] = '.androapp img{ max-width: 100%; height: auto; } iframe{ max-width: 100%; height: auto; } '; $this->op[pw_mobile_app_settings::$shareImagePreference] = 'first'; $this->op[pw_mobile_app_settings::$sharePreference] = 'EXCERPT'; $this->op[pw_mobile_app_settings::$shareTextWithImage] = 'TITLE'; $this->op[pw_mobile_app_settings::$shareSuffixText] = 'via'; $this->op[pw_mobile_app_settings::$shareSuffixLink] = 'POST'; $this->op[pw_mobile_app_settings::$shareImageWithCustomFunction] = '1'; if(get_option("comment_registration") == 1){ $this->op[pw_mobile_app_settings::$commentsProvider] = 'disabled'; }else{ $this->op[pw_mobile_app_settings::$commentsProvider] = 'wordpress'; } $this->op[pw_mobile_app_settings::$showCommentsCount] = '1'; $this->buildop[pw_mobile_app_settings::$tagTextColorKey] = "#ff808080"; $this->buildop[pw_mobile_app_settings::$tagBgColorKey] = "#E6E6E6"; $this->buildop[pw_mobile_app_settings::$feedBgColorKey] = "#FFFFFF"; $this->buildop[pw_mobile_app_settings::$feedTitleColorKey] = "#424242"; $this->buildop[pw_mobile_app_settings::$feedContentTextColorKey] = "#616161"; $this->buildop[pw_mobile_app_settings::$screenBgColorKey] = "#E6E6E6"; $this->buildop[pw_mobile_app_settings::$actionBarTitleColorKey] = "#FFFFFF"; $this->buildop[pw_mobile_app_settings::$actionBarBgColorKey] = "#F4832C"; $this->buildop[pw_mobile_app_settings::$authorTextColorKey] = "#477c29"; $this->buildop[pw_mobile_app_settings::$timeTextColorKey] = "#757575"; if(!get_option($this->option_name)) { add_option($this->option_name, $this->op); } if(!get_option($this->build_option_name)) { add_option($this->build_option_name, $this->buildop); } if(!get_option($this->account_tab_key)) { add_option($this->account_tab_key, $this->accountop); } if(!get_option($this->language_option_name)){ add_option($this->language_option_name, pw_mobile_app_settings::$languageArray); } if(!get_option($this->scripts_option)) { $scriptOptions = array(); $scriptOptions['count'] = 0; $scriptOptions['scripts'] = null; add_option($this->scripts_option, $scriptOptions); } $this->doCurlRequest($this->buildop[HOST_NAME], "INSTALL", $this->buildop[EMAIL]); } private function updateFor319(){ if(!get_option($this->language_option_name)){ add_option($this->language_option_name, pw_mobile_app_settings::$languageArray); } } private function addFigureCss(){ $options = get_option($this->option_name); $options[pw_mobile_app_settings::$postProcessedCss] = $options[pw_mobile_app_settings::$postProcessedCss]." figure { max-width: 100%; height: auto; }"; update_option($this->option_name, $options); $buildoptions = get_option($this->build_option_name); $buildoptions[ANDROAPP_THEME_NAME] = 'cardview'; update_option($this->build_option_name, $buildoptions); } public function doCurlRequest($host, $action, $email){ if(function_exists('curl_init')){ $url = $this->androAppHost."/appCreator/log.php?action=".$action."&email=".urlencode($email)."&host=".urlencode($host); $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); //echo $output; } } public function deactivate() { $options = get_option($this->build_option_name); $this->doCurlRequest($options[HOST_NAME], "UNINSTALL", $options[EMAIL]); //delete_option($this->option_name); //delete_option($this->build_option_name); //delete_option($this->account_tab_key); //delete_option($this->language_option_name); //delete_option($this->get_started_option_name); } // White list our options using the Settings API public function admin_init() { $this->plugin_settings_tabs[$this->get_started_option_name] = 'Get Started'; register_setting($this->get_started_option_name, $this->get_started_option_name); add_settings_section( 'section_get_started', 'Welcome to AndroApp Native Android Mobile App', array( &$this, 'options_do_getstarted' ), $this->get_started_option_name ); $this->plugin_settings_tabs[$this->build_option_name] = 'Look & Feel'; register_setting($this->build_option_name, $this->build_option_name); add_settings_section( 'section_build_settings', 'Look & Feel', array( &$this, 'build_options_do_page' ), $this->build_option_name ); $this->plugin_settings_tabs[$this->option_name] = 'Configure'; register_setting($this->option_name, $this->option_name); add_settings_section( 'section_app_settings', ' dynamic settings for your app', array( &$this, 'options_do_page' ), $this->option_name ); $this->plugin_settings_tabs[$this->language_option_name] = 'Internationalization'; register_setting($this->language_option_name, $this->language_option_name); add_settings_section( 'section_language_settings', ' Change texts for your app', array( &$this, 'language_options_do_page' ), $this->language_option_name ); $this->plugin_settings_tabs[$this->account_tab_key] = 'Account Settings'; register_setting($this->account_tab_key, $this->account_tab_key); add_settings_section( 'section_publish_settings', 'Account Settings', array( &$this, 'accounts_do_page' ), $this->account_tab_key ); } // Add entry in the settings menu public function add_page() { add_options_page('AndroApp', 'AndroApp', 'manage_options', $this->plugin_options_key, array($this, 'plugin_options_page')); } /* * Renders our tabs in the plugin options page, * walks through the object's tabs array and prints * them one by one. Provides the heading for the * plugin_options_page method. */ function plugin_options_tabs() { $current_tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $this->get_started_option_name; screen_icon(); echo ''; } function add_scripts($todo) { //echo "

Add Scripts

"; //print_r($todo); if(is_single()){ $this->process_scripts($todo); } return $todo; } function add_late_scripts() { global $wp_scripts; if(is_single()){ $this->process_scripts($wp_scripts->queue); } } function process_scripts($scriptsHandle){ global $wp_scripts; $options = get_option($this->scripts_option); $scripts = $options ['scripts']; //print_r($scripts); if(empty($scripts)){ $scripts = array(); } $scripts = $scripts + $this->process_scripts_inner($scriptsHandle); $options['scripts'] = $scripts; $options['count'] = $this->scriptOptions['count']; update_option($this->scripts_option, $options); } function process_scripts_inner($scriptsHandle){ global $wp_scripts; $scripts = array(); foreach( $scriptsHandle as $handle ) : //echo $handle."
"; if(!empty($wp_scripts->registered[$handle]->src)) { $scripts[$handle] = convertToFullUrl($wp_scripts->registered[$handle]->src); }else{ $deps = $wp_scripts->registered[$handle]->deps; $scripts = $scripts + $this->process_scripts_inner($deps); } endforeach; return $scripts; } function clearScripts(){ $this->scriptOptions['scripts'] = null; $this->scriptOptions['count'] = 0; update_option($this->scripts_option, $this->scriptOptions); header("Location: ?page=pw_mobile_app_options"); } function renderForm($tab, $functionname){ ?>
$functionname(); }else{ do_settings_sections( $tab ); } ?>
get_started_option_name; if(isset($_GET['clear_scripts_list'])){ $this->clearScripts(); } ?>
plugin_options_tabs(); if($tab == 'androapp_getstarted'){ do_settings_sections( $tab ); } else { $this->renderForm($tab, ""); } ?>
You need to submit your app to Google App Store such that your readers can install your mobile app.

You have two options
  1. Submit it yourself
    Create a new account on google play developer console and submit your app yourself. You need to pay one time fee of $25. Generally it takes around 48 hours (after the payment) for new accounts to get approved.

  2. Leave it onto us
    We can submit your app from our account, ownership of the app can be transferred to you later at any point of time.
    We will need following details from you

    1. One Application Icon of 512×512 size, same which is used while creating the app
    2. One feature graphic of 1024×500 size
    3. App Description
    4. 2-3 screenshots
    For more details, drop an email @ contact@androapp.mobi

https://play.google.com/store/apps/details?id=".$options[PACKAGE_NAME].""; echo '

'.$applinktext.'

'; } ?>

Annual Renewal

AndroApp is completely free for the first year, after that you can purchase annual subscription from here. Mention your email id and site link in shipping address. We will activate your annual subscription.

Please get in touch with us @ contact@androapp.mobi for any more clarifications.

account_tab_key); ?>

Push Notification Settings

Google API Key: We use Google Messaging API's for push notifications, Follow instructions here to create a Google API project, enable "Google Cloud Messaging for Android" api, and enter your API Key here(This is needed to send push notifications to you app)

" value="" />
Google Project Number: Enter your Google Project Number for the project created in above step.

Note: You need to publish new build everytime you change it

" value="" />

Analytics Settings

Tracking ID: To know pageviews, exceptions, number of shares, comments from the app, create a google analytics account as instructed here.
Add your tracking id (will look like UA-XXXXXXXX-X) in the text box below.

Note: You need to publish new build everytime you change it

" value="" />

Monetization Settings

We are using top performing mobile ad network AdMob by Google. Please create an account on Admob and enter ad id's here.
Top Ad Unit: " value="" />
Bottom Ad Unit: " value="" />
List View Ad Unit: " value="" /> of size , show it after every posts.
Interstitial Ad Unit: " value="" /> show it after every page screens.

✓"; } function isTimeZoneError(){ try{ $this->androapp_json_get_timezone(); return false; }catch(Exception $e){ return true; } return false; } function isAndroAppHtAccessRulesPresent(){ $home_path = trailingslashit( get_home_path() ); $rules = implode( "\n", extract_from_markers( $home_path.'.htaccess', 'AndroApp' ) ); return !empty($rules); } function androapp_update_htaccess() { $home_path = trailingslashit( get_home_path() ); $wprules = implode( "\n", extract_from_markers( $home_path.'.htaccess', 'WordPress' ) ); $rules = "\n"; $rules .= "RewriteEngine On\n"; $rules .= "RewriteBase /\n"; $rules .= "RewriteRule ^wp-json/(.*)/$ /?json_route=/$1 [R=permanent,L,QSA]\n"; $rules .= "RewriteRule ^wp-json/(.*)$ /?json_route=/$1 [R=permanent,L,QSA]\n"; $rules .= ""; // remove original WP rules so SuperCache rules go on top if($this->wpsc_remove_marker( $home_path.'.htaccess', 'WordPress' )){ if( insert_with_markers( $home_path.'.htaccess', 'AndroApp', explode( "\n", $rules ) ) && insert_with_markers( $home_path.'.htaccess', 'WordPress', explode( "\n", $wprules ) ) ) { return true; } else { return false; } }else{ return false; } } //from wp super cache function wpsc_remove_marker( $filename, $marker ) { if (!file_exists( $filename ) || $this->is_writeable_ACLSafe( $filename ) ) { if (!file_exists( $filename ) ) { return ''; } else { $markerdata = explode( "\n", implode( '', file( $filename ) ) ); } $f = fopen( $filename, 'w' ); $foundit = false; if ( $markerdata ) { $state = true; foreach ( $markerdata as $n => $markerline ) { if (strpos($markerline, '# BEGIN ' . $marker) !== false) $state = false; if ( $state ) { if ( $n + 1 < count( $markerdata ) ) fwrite( $f, "{$markerline}\n" ); else fwrite( $f, "{$markerline}" ); } if (strpos($markerline, '# END ' . $marker) !== false) { $state = true; } } } return true; } else { return false; } } // from legolas558 d0t users dot sf dot net at http://www.php.net/is_writable function is_writeable_ACLSafe($path) { // PHP's is_writable does not work with Win32 NTFS if ($path{strlen($path)-1}=='/') // recursively return a temporary file path return $this->is_writeable_ACLSafe($path.uniqid(mt_rand()).'.tmp'); else if (is_dir($path)) return $this->is_writeable_ACLSafe($path.'/'.uniqid(mt_rand()).'.tmp'); // check tmp file for read/write capabilities $rm = file_exists($path); $f = @fopen($path, 'a'); if ($f===false) return false; fclose($f); if (!$rm) unlink($path); return true; } function isShowHtAccessRules($permalink_structure){ return empty($permalink_structure) && !$this->isAndroAppHtAccessRulesPresent(); } function options_do_getstarted(){ $sectionTobeOpened = -1; $stepOneCompleted = false; $updateHtaccessFailed = false; if(isset($_POST['updatehtaccess']) && $_POST['updatehtaccess'] == "1"){ $updateHtaccessFailed = !$this->androapp_update_htaccess(); } $permalink_structure = get_option('permalink_structure'); if(is_plugin_active('json-rest-api/plugin.php') && !$this->isTimeZoneError() && !$this->isShowHtAccessRules($permalink_structure)){ $stepOneCompleted = true; }else{ $sectionTobeOpened = 0; } global $options ; $options = get_option($this->build_option_name); $stepTwoCompleted = false; if(!empty($options[CLIENT_ID])){ $stepTwoCompleted = true; }else{ if($sectionTobeOpened == -1){ $sectionTobeOpened = 1; } } $stepThreeCompleted = false; if(!empty($options[LAUNCHER_ICON])){ $stepThreeCompleted = true; } else{ if($sectionTobeOpened == -1){ $sectionTobeOpened = 2; } } $accountOptions = get_option($this->account_tab_key); $stepFourCompleted = false; if(!empty($accountOptions[GOOGLE_SENDER_ID])){ $stepFourCompleted = true; }else{ if($sectionTobeOpened == -1){ $sectionTobeOpened = 3; } } if($sectionTobeOpened == -1){ $sectionTobeOpened = 4; } ?>

Follow these 5 steps to see your mobile app in Google play store

You have completed this step

You have already installed WP REST API (WP API) Plugin.

Move over to the next Step Now.

isTimeZoneError()) { ?>

WP REST API does not work correctly for your current timezone, Click here to change it and come back.

(Please change your timezone by +-30 minutes or more and see if this link works fine:

isShowHtAccessRules($permalink_structure)){ $home_path = trailingslashit( get_home_path() ); ?>

WP REST API plugin does not work as expected in default link structure, if possible change your Permalink structure here
OR add this on top of your .htaccess file

# BEGIN AndroApp
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-json/(.*)/$ /?json_route=/$1 [R=permanent,L,QSA]
RewriteRule ^wp-json/(.*)$ /?json_route=/$1 [R=permanent,L,QSA]
</IfModule>
# END AndroApp

We could not modify your .htaccess file, please check the file permission.


"; } ?>

'; echo ''; echo '
'; wp_nonce_field('androapp_update_htaccess'); echo ""; } else{ $json_installurl = $this->getInstallLink('json-rest-api'); ?>

Your mobile app will use json calls to get the data from your site, for that you have to enable WP REST API plugin. This plugin is maintained by wordpress core team and will soon be included in the wordpress core, till then

Click here to install WP REST API (WP API) plugin.

And move over to the next Step.

2print_checkMark();}?>Generate Android apk file

Click below button to generate android apk file now

renderForm('androapp_getstarted' ,'render_invisibleForm'); }else{ ?>

You have completed this step

We sent your mobile app download link to your email id, please check your mail and install it on your android phone.
In case you did not receive any mail, Don't worry, just drop an email to us @ contact@androapp.mobi, we will be happy to help you.

And move over to the next Step.

3print_checkMark();}?>Configure Look and Feel and Other Settings

You have completed this step, However

Go to Look & Feel tab to change App Name, Logo, Colors and email id, you can also generate build from there again. Make the changes here and restart your app to see the changes.

Go to Configure tab to change dynamic settings, like Menu Items, Comments Settings, Image Preview options, Share Text options etc. These settings can be changed anytime, you don't really need to publish a new build everytime, just restart your app and browse, you will see the changes.

Go to Internalization tab to change the texts used in app, you can use this section to change the texts to your own language, OR to change the default values to suit your website.

And move over to the next Step.

4print_checkMark();}?>Create /Google Messaging/Admob Accounts

You have completed this step, However

Go to Account Settings tab and

  1. update Google Cloud Messaging for Android api key and project number for Push Notifications to work.
  2. Create Google AdMob account for monetizing your app and fill Ad id's.

And move over to the next Step.

5Publish Your App on Google Play Store

You need to create a new apk after Step 4, Go to Look & Feel section to create the new apk for your mobile app.
publish_do_page(); ?>

account_tab_key); $tagTextColor = $options[pw_mobile_app_settings::$tagTextColorKey]; $tagBgColor = $options[pw_mobile_app_settings::$tagBgColorKey]; $feedBgColor = $options[pw_mobile_app_settings::$feedBgColorKey]; $feedTitleColor = $options[pw_mobile_app_settings::$feedTitleColorKey]; $feedContentTextColor = $options[pw_mobile_app_settings::$feedContentTextColorKey]; $screenBgColor = $options[pw_mobile_app_settings::$screenBgColorKey]; $actionBarTitleColor = $options[pw_mobile_app_settings::$actionBarTitleColorKey]; $actionBarBgColor = $options[pw_mobile_app_settings::$actionBarBgColorKey]; ?> " value=""/> " value="" /> " type="color" value="" /> " type="color" value="" /> " type="color" value="" /> " type="color" value="" /> " type="color" value="" /> " type="color" value="" /> " type="color" value="" /> " type="color" value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="getstarted" />
build_option_name); $accountOptions = get_option($this->account_tab_key); $tagTextColor = $options[pw_mobile_app_settings::$tagTextColorKey]; $tagBgColor = $options[pw_mobile_app_settings::$tagBgColorKey]; $feedBgColor = $options[pw_mobile_app_settings::$feedBgColorKey]; $feedTitleColor = $options[pw_mobile_app_settings::$feedTitleColorKey]; $feedContentTextColor = $options[pw_mobile_app_settings::$feedContentTextColorKey]; $screenBgColor = $options[pw_mobile_app_settings::$screenBgColorKey]; $actionBarTitleColor = $options[pw_mobile_app_settings::$actionBarTitleColorKey]; $actionBarBgColor = $options[pw_mobile_app_settings::$actionBarBgColorKey]; $authorTextColor = $options[pw_mobile_app_settings::$authorTextColorKey]; $timeTextColor = $options[pw_mobile_app_settings::$timeTextColorKey]; $args = array( 'posts_per_page' => 5, 'offset' => 0, 'category' => '', 'category_name' => '', 'orderby' => 'post_date', 'order' => 'DESC', 'include' => '', 'exclude' => '', 'meta_key' => '', 'meta_value' => '', 'post_type' => 'post', 'post_mime_type' => '', 'post_parent' => '', 'post_status' => 'publish', 'suppress_filters' => false ); $postslist = get_posts( $args ); ?>
Theme Select the application theme
Theme Colors: Action Bar background color: " type="color" value="" onChange="document.getElementById('actionBar').style.background = this.value;" />
Action Bar Text color: " type="color" value="" onChange="document.getElementById('actionBarTitle').style.color = this.value;" />
Screen Background color: " type="color" value="" onChange="document.getElementById('androScreen').style.background = this.value;" />
Feed Title color: " type="color" value="" onChange="changeTextColor('androPostTitle', this.value);" />
Feed preview text color: " type="color" value="" onChange="changeTextColor('androPostContent', this.value);" />
Feed background color: " type="color" value="" onChange="changeBgColor('androFeed', this.value);" />
Category title color: " type="color" value="" onChange="changeTextColor('tagTitle', this.value);" />
Category Background color: " type="color" value="" onChange="changeBgColor('tagTitle', this.value);" />
Author Text color: " type="color" value="" onChange="changeTextColor('authorTitle', this.value);" />
Time Ago Text color: " type="color" value="" onChange="changeTextColor('timeTitle', this.value);" />
* Application Name: Define application name (This is the name which will appear in play store).
" value="" onChange="document.getElementById('actionBarTitle').innerHTML=this.value;"; />
*Site Url: Enter Your site url (most probably you don't need to edit it).
" value="" />
*Application Icon: Upload a png image of 512x512 dimension.
" value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="" /> " value="getyourapp" />
This is just approximate html preview, It is recommended to test it on device directly.
post_content); //if(!empty($firstImage)) { ?>
"; }else{ echo ' '; } ?>
".$post->post_title."";?>
post_content))), 0, 115); ?>
ID); if($category[0]){ echo $category[0]->cat_name; } ?>
post_author ); echo $author; ?>

* Application Name, Site Url and Application Icon settings go into your mobile app and can't be changed once you publish your app in google app store. You have to publish your app everytime you update these settings, so carefully fill these before generating the build.

Email: We will send generated apk link to this mail id.

" value="" />
By clicking on the below button you agree to our Terms & Conditions.

">

Select JS files you want to include $src) { ?>
Handle Script src Action
Add>>
No enqueued files detected.

Please try visiting a few pages on your site and then refresh this page.

You should clear this list once in a while to get rid of files that are no longer being used as this is not done automatically.


Selected Scripts
Clear Script File List

Define custom css here for postprocessed content type
language_option_name); ?>

Add your text in corresponding textbox, if you leave it blank default value will be used

$value) { ?>
Text Title Your Value Default Value
" value="" />

option_name); $scriptOptions = $this->scriptOptions; ?>

Note:- You can change all below settings at runtime (without any need to create new apk). You need to restart your app and browse few pages to see the change.

Select Menu: Select the menu to be used for mobile app, you may use the same menu as your website, or create a new menu specifically for mobile app.



Image Dimension: We use the featured image to show on the feeds pages(list pages like, category and home) on mobile app.
If no featured image is present than we try and fetch the first image from the post content
" value="1" /> (if checked, will not try to fetch the first image from the post content, will use only featured image)

Select the image dimension for the image.

" value="full" />Full Image (Fit to width)
" value="preview" />Preview (fit to width with limited height)
" value="noimage" />No Image (Image from the preview text will be visible, if any)


Preview Text Setting: Select which text to be used for preview on feeds(category and home page) in mobile app.

" value="excerpt" />Excerpt
$action, 'plugin' => $slug ), admin_url( 'update.php' ) ), $action.'_'.$slug );?> " value="seo_meta_desc" />SEO Meta Description( install and Activate Wordpress SEO plugin)
" value="none" />No Preview Text (only title will be shown)


Post Content: Select the post content type to use for your app, we suggest to select different options and test in on mobile app live.

" value="preprocessed" onChange="onPostContentTypeChange();" />Pre Processed content (shortcodes will be stripped, except caption, galley, audio, video, playlist and wp_caption)
" value="postprocessed" onChange="onPostContentTypeChange();" />Post Processed (all shortcodes will be processed, you might need to add js files specifically)
render_scripts($scriptOptions['scripts'] , $options[pw_mobile_app_settings::$selectedScripts], $options[POST_CONTENT], $options[pw_mobile_app_settings::$postProcessedCss]); ?> " value="loadurl" onChange="onPostContentTypeChange();" />Load from Url (It will open post page directly, you can modify CSS to hide some content, OR use isAndroAppRequest() method to check if it is a AndroApp Request.).
"> Modify below css for mobile app requests
Example to check if it is a AndroAppRequest
if(function_exists('isAndroAppRequest') && isAndroAppRequest()){
//Code to be called for AndroApp Requests(mobile app)
}
Example to check if its not a AndroAppRequest
if(!function_exists('isAndroAppRequest') || !isAndroAppRequest()){
//Code to be called for regular requests
}


Share Image: " value="first" />Use First Image
" value="noimage" />Don't use image for sharing(share only text)
Share Text: Select the text to be used for share via WhatsApp and other share intents(excluding Facebook).

Select the text to be used without image(when no image is available to share)

Select the text to be used with image
Share Suffix: Suffix Text " value="" /> Suffix Link
Share Function Name: Custom share text, you can overwrite above share settings for few posts using this method
" value="" /> define a method in your themes functions.php file, if this function returns empty string, we will use above share settings.
function getShareText($post, $link){
	return "Share Text ". via ".$link;
}
					
" value="1" />Do not share Image When This function returns something


Enable WP Super Cache for mobile app: If you are using WP Super Cache, you can enable it for mobile app requests as well.

You have to disable debugging option and display comments at the end option from Debug tab of WP Super Cache Settings page.
also uncheck Don’t cache pages with GET parameters. (?x=y at the end of a url) option


" value="1" />Enable
Comments: Provider " value="wordpress" />Wordpress " value="disabled" />Disable
(We do not support disqus, facebook or google+ comments as of now, we are working on them)
" value="1" />Show Comments Count


name)){ return $menu->term_id; } } return null; } function getToken($length) { $key = ''; $keys = array_merge(range(0, 9), range('a', 'z')); for ($i = 0; $i < $length; $i++) { $key .= $keys[array_rand($keys)]; } return $key; } function androapp_json_get_timezone() { $tzstring = get_option( 'timezone_string' ); if ( ! $tzstring ) { // Create a UTC+- zone if no timezone string exists $current_offset = get_option( 'gmt_offset' ); if ( 0 == $current_offset ) { $tzstring = 'UTC'; } elseif ( $current_offset < 0 ) { $tzstring = 'Etc/GMT' . $current_offset; } else { $tzstring = 'Etc/GMT+' . $current_offset; } } $zone = new DateTimeZone( $tzstring ); return $zone; } }