(Download these & put in smartphoneApp -> index.html http://jquery.com/download/ https://github.com/padolsey/jQuery-Plugins/blob/master/cross-domain-ajax/jquery.xdomainajax.js)
- smartphoneApp -> index.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> <title>Title</title> <link rel="manifest" href="manifest.json"> <!-- un-comment this code to enable service worker <script> if ("serviceWorker" in navigator) { navigator.serviceWorker .register("service-worker.js") .then(() => console.log("service worker installed")) .catch(err => console.log("Error", err)); } </script>--> <link href="lib/ionic/css/ionic.css" rel="stylesheet"> <link href="css/style.css" rel="stylesheet"> <!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above <link href="css/ionic.app.css" rel="stylesheet"> --> <!-- ionic/angularjs js --> <script src="lib/ionic/js/ionic.bundle.js"></script> <!-- cordova script (this will be a 404 during development) --> <script src="cordova.js"></script> <!-- your app's js --> <script src="js/app.js"></script> <script src="js/controllers.js"></script> <script src="js/services.js"></script> <!-- set up ajax --> <script type="text/javascript" src="jquery-3.2.1.min.js"></script> <script type="text/javascript" src="jquery.xdomainajax.js"></script> <!-- Check if it reads jQuary file correctly <script type="text/javascript"> $(document).ready(function() { alert("jQueryファイルの読み込み完了でーす。"); }); </script> --> <!-- <script> var wp_url_admin_ajax = '<?php echo admin_url("admin-ajax.php"); ?>'; </script> --> <script> var wp_url_admin_ajax = 'http://haritaipan.local/wp-admin/admin-ajax.php'; </script> <script> jQuery(function($) { $.ajax({ crossDomain: true, type: "POST", url: wp_url_admin_ajax, data: { action: "tell_me" }, success: function(response) { //console.log("ddd" + response); //json = JSON.parse(response); json = eval("(" + response + ")"); if (json.err) { result = "error:404"; } else { console.log(json); } } }); }); </script> <!-- //start here --> <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js"></script> <script type="text/javascript"> var map_canvas; function initialize_map() { var map_center = new google.maps.LatLng(35.6745973, 139.7778069); var map_options = { mapTypeId: google.maps.MapTypeId.ROADMAP, center: map_center, zoom: 14, mapTypeControlOptions: { mapTypeIds: [google.maps.MapTypeId.ROADMAP, "style"] } }; map_canvas = new google.maps.Map( document.getElementById("map_canvas"), map_options ); //マップの色や道路設定を変更しました。 var mapstyle = [ { stylers: [{ saturation: 33 }, { hue: "#0099ff" }, { lightness: -8 }] }, { featureType: "poi", stylers: [{ visibility: "simplified" }] }, { featureType: "transit.station.bus", stylers: [{ visibility: "off" }] }, { featureType: "road.highway", stylers: [{ saturation: -48 }, { lightness: 42 }] } ]; var myOptions = { name: "Blue" }; var mapType = new google.maps.StyledMapType(mapstyle, myOptions); map_canvas.mapTypes.set("style", mapType); map_canvas.setMapTypeId("style"); //Google mapで東京駅、大井町駅、八丁堀駅を3つマーカとして表す。 var markerData = new Array(); markerData.push({ lat: "35.681382", lng: "139.766084" }); markerData.push({ lat: "35.684801", lng: "139.766086" }); markerData.push({ lat: "35.6745973", lng: "139.7778069" }); for (i = 0; i < markerData.length; i++) { create_marker(markerData[i].lat, markerData[i].lng); } } function create_marker(lat, lng) { var marker_options = { map: map_canvas, position: new google.maps.LatLng(lat, lng), zIndex: 0 }; var marker = new google.maps.Marker(marker_options); } google.maps.event.addDomListener(window, "load", initialize_map); </script> <!-- //end here --> </head> <body ng-app="starter"> <!-- The nav bar that will be updated as we navigate between views. --> <ion-nav-bar class="bar-stable"> <ion-nav-back-button> </ion-nav-back-button> </ion-nav-bar> <!-- The views will be rendered in the <ion-nav-view> directive below Templates are in the /templates folder (but you could also have templates inline in this html file if you'd like). --> <ion-nav-view></ion-nav-view> </body> </html>
admin-ajax.php
<?php /** * WordPress Ajax Process Execution * * @package WordPress * @subpackage Administration * * @link https://codex.wordpress.org/AJAX_in_Plugins */ /** * Executing Ajax process. * * @since 2.1.0 */ header("Access-Control-Allow-Origin: *"); define( 'DOING_AJAX', true ); if ( ! defined( 'WP_ADMIN' ) ) { define( 'WP_ADMIN', true ); } /** Load WordPress Bootstrap */ require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' ); /** Allow for cross-domain requests (from the front end). */ send_origin_headers(); // Require an action parameter if ( empty( $_REQUEST['action'] ) ) die( '0' ); /** Load WordPress Administration APIs */ require_once( ABSPATH . 'wp-admin/includes/admin.php' ); /** Load Ajax Handlers for WordPress Core */ require_once( ABSPATH . 'wp-admin/includes/ajax-actions.php' ); @header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) ); @header( 'X-Robots-Tag: noindex' ); send_nosniff_header(); nocache_headers(); /** This action is documented in wp-admin/admin.php */ do_action( 'admin_init' ); add_action('wp_ajax_tell_me', 'tell_me'); // ログイン状態のユーザーからのアクセスで動作する add_action('wp_ajax_nopriv_tell_me', 'tell_me'); // 非ログインのユーザーからのアクセスで動作する function tell_me() { $res = "answer"; echo json_encode($res, JSON_UNESCAPED_UNICODE); die(); } $core_actions_get = array( 'fetch-list', 'ajax-tag-search', 'wp-compression-test', 'imgedit-preview', 'oembed-cache', 'autocomplete-user', 'dashboard-widgets', 'logged-in', ); $core_actions_post = array( 'oembed-cache', 'image-editor', 'delete-comment', 'delete-tag', 'delete-link', 'delete-meta', 'delete-post', 'trash-post', 'untrash-post', 'delete-page', 'dim-comment', 'add-link-category', 'add-tag', 'get-tagcloud', 'get-comments', 'replyto-comment', 'edit-comment', 'add-menu-item', 'add-meta', 'add-user', 'closed-postboxes', 'hidden-columns', 'update-welcome-panel', 'menu-get-metabox', 'wp-link-ajax', 'menu-locations-save', 'menu-quick-search', 'meta-box-order', 'get-permalink', 'sample-permalink', 'inline-save', 'inline-save-tax', 'find_posts', 'widgets-order', 'save-widget', 'delete-inactive-widgets', 'set-post-thumbnail', 'date_format', 'time_format', 'wp-remove-post-lock', 'dismiss-wp-pointer', 'upload-attachment', 'get-attachment', 'query-attachments', 'save-attachment', 'save-attachment-compat', 'send-link-to-editor', 'send-attachment-to-editor', 'save-attachment-order', 'heartbeat', 'get-revision-diffs', 'save-user-color-scheme', 'update-widget', 'query-themes', 'parse-embed', 'set-attachment-thumbnail', 'parse-media-shortcode', 'destroy-sessions', 'install-plugin', 'update-plugin', 'press-this-save-post', 'press-this-add-category', 'crop-image', 'generate-password', 'save-wporg-username', 'delete-plugin', 'search-plugins', 'search-install-plugins', 'activate-plugin', 'update-theme', 'delete-theme', 'install-theme', 'get-post-thumbnail-html', 'get-community-events', ); // Deprecated $core_actions_post[] = 'wp-fullscreen-save-post'; // Register core Ajax calls. if ( ! empty( $_GET['action'] ) && in_array( $_GET['action'], $core_actions_get ) ) add_action( 'wp_ajax_' . $_GET['action'], 'wp_ajax_' . str_replace( '-', '_', $_GET['action'] ), 1 ); if ( ! empty( $_POST['action'] ) && in_array( $_POST['action'], $core_actions_post ) ) add_action( 'wp_ajax_' . $_POST['action'], 'wp_ajax_' . str_replace( '-', '_', $_POST['action'] ), 1 ); add_action( 'wp_ajax_nopriv_heartbeat', 'wp_ajax_nopriv_heartbeat', 1 ); if ( is_user_logged_in() ) { /** * Fires authenticated Ajax actions for logged-in users. * * The dynamic portion of the hook name, `$_REQUEST['action']`, * refers to the name of the Ajax action callback being fired. * * @since 2.1.0 */ do_action( 'wp_ajax_' . $_REQUEST['action'] ); } else { /** * Fires non-authenticated Ajax actions for logged-out users. * * The dynamic portion of the hook name, `$_REQUEST['action']`, * refers to the name of the Ajax action callback being fired. * * @since 2.8.0 */ do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] ); } // Default status die( '0' );