Tengo un problema con mi servidor localhost Flask app.py, donde tengo mis funciones de datos y registros. Mi proyecto completo va en PC y en Android, solo mi servidor localhost no funciona en Android. Cuando ejecuto la aplicación del proyecto en Chrome en Windows, el proyecto se ejecuta, pero cuando ejecuto el proyecto en Android Drive, no lee mi servidor. Mi aplicación iónica se ejecuta en servicio iónico (ruta: 8100).
Mi localhost, donde están mis datos, se ejecuta en localhost:5000 serve.
Mi servidor Flask Python App.py
from flask import Flask, jsonify,request from flask_cors import CORS, cross_origin from posts import posts from waitress import serve app=Flask(__name__) cors = CORS(app) app.config['CORS_HEADERS'] = 'Content-Type' @app.route('/') @cross_origin() def index(): lang = request.headers.get("Accept-Language", 'sk')[:2] p = list(map (lambda post: translate(post, lang), posts)) return jsonify(p) def translate(post, lang): translation = next (t for t in post['translations'] if t['locale'] == lang) return { "id": post ['id'], "title": translation ['title'], "description": translation ['description'], "image": post['image'], } if __name__ == "__main__": from waitress import serve serve(app, host="localhost", port=5000 )Mi página de proyecto iónico "Novinky"
import { Component, OnInit } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; @Component({ selector: 'app-posts2', templateUrl: './posts.component.html', styleUrls: ['./posts.component.scss'], }) export class PostsComponent implements OnInit { posts:any = []; constructor(private http: HttpClient) { } ngOnInit() { const lang = localStorage.getItem('lang') || 'sk'; const headers = new HttpHeaders({ 'Accept-Language': lang }) this.http.get('http://localhost:5000', { headers: headers }).subscribe(data=>{ console.log(); this.posts = data; }); } }Cuando ejecuto mi proyecto en la PC, veo esto
ingrese la descripción de la imagen aquí
Esta es mi pantalla de proyecto. ingrese la descripción de la imagen aquí
Cuando ejecuto mi proyecto en Android Studio no funciona, veo una pantalla en negro, ¡no releo el servidor localhost!
ingrese la descripción de la imagen aquí
Por favor ayúdame, gracias.
Suponiendo que su frasco y la aplicación de Android estén en la misma LAN,
en matraz, simplemente actualice su host a su dirección ipv4 local
serve(app, host="192.168.XX", port=5000) Y en la aplicación iónica, puede acceder a ella usando la misma dirección ipv4, es decir, 192.168.XX , algo así como,
this.http.get('http://192.168.XX:5000', { headers: headers }).subscribe(data=>{ console.log(); this.posts = data; }); }Y cuando esté en vivo, debe reemplazar el ipv4 con la URL de su aplicación de matraz alojada en consecuencia.
en mi terminal cuando actualicé los datos de mi script, no refres.
exp.cuando agrego nuevos datos en el script, no veo noticias en Android Drive ni en la PC.
{ "id": 5, "quantity_left": 5, "image": "", "translations": [ { "locale": "sk", "title":"Park nový", "description":"Park je nový", },Hago un servicio en la nube y trabajo en Chrome o no funciona en la aplicación.
Este script es mi app.py
from flask import Flask, jsonify,request from posts import posts app=Flask(__name__) @app.route('/') def index(): lang = request.headers.get("Accept-Language", 'sk')[:2] p = list(map (lambda post: translate(post, lang), posts)) return jsonify(p) def translate(post, lang): translation = next (t for t in post['translations'] if t['locale'] == lang) return { "id": post ['id'], "title": translation ['title'], "description": translation ['description'], "image": post['image'], }Esto funciona en Chrome, no funciona en la aplicación, cuando reemplazo mi URL de la nube.
Gracias