Ir para conteúdo
DaniloProgramador

Tem como capturar img de um webserver pelo IONIC ?

Recommended Posts

Olá, sou desenvolvedor web e estou  querendo entrar na área de desenvolvimento mobile, comecei a estudar IONIC pois vi que tem como conecta-lo com um banco mysql, porém gostaria de saber se terá como recuperar arquivos como imagens de um servidor web para que seja exibidas no app.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu tava com essa mesma duvida, tanto na hora de fazer upload como na hora de recuperar a imagem de um servidor proprio pra hospedagem ...

 

Mas acho que é possivel sim, retornando json, com o nome da imagem e o url do server.

Tipo, faz o upload e ele retorna um json com 

retorno = {

     nomeImagem => nomedaimagem.jpg

}

e na hora de exibir, pega o url do server pra onde foi enviada a imagem.

dai fica, http://meusite.com/uploads/nomedaimagem.jpg.

 

minha logica é essa, mas, ainda não fiz o teste kkkk, Que alguem me corrija se eu estiver errado, por favor!

Abraço!

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu não me engano, vai da um erro na hora de você fazer a requisição, pois estará fazendo a requisição de um server para outro ...

Eu vi isso quando fui tentar retornar as notificação do meu site no app ( sim, eu usei o mesmo arquivo que exibe as notificações do meu site no app kkk);

Então tive que usar o access-control para permitir que outros server tivessem acesso ao meu arquivo, porém, deste moto, qualquer site poderia hospedar usando seu arquivo ... Estou tentando achar uma solução para isso kkkk

header('Access-Control-Allow-Origin: *');

o * permite que qualquer site acesse o determinado arquivo,

Trocando ele pelo server do app, evitaria esse contratempo ... Bom, como eu disse, ainda estou aprendendo tbm kkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Euler Belfortt
      Olá pessoal alguém pode me ajudar?
      Preciso abrir uma url ao clicar em uma imagem dentro de um textsliderview
      Se alguém puder me ajudar fico grato.
      textSliderView.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() { @Override public void onSliderClick(BaseSliderView slider) { String url = "http://www.google.com"; // Preciso passar a slider_url aqui Toast.makeText(getActivity(), "ID '" + name.get("slider_url")+"' url '"+ name.get("slider_url") + "' url recebida.", Toast.LENGTH_LONG).show(); Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(browserIntent); } });  
    • Por Euler Belfortt
      Olá bom dia.
       
      Tenho uma aplicação android na qual tenho um slider que pego os dados do webserver php.
      Gostaria de saber como faço para abrir a url vinda do banco de dados, quando a imagem for clicada.
       
      Este é meu código eu fiz o código pegando como base uma URL fixa de uma variavel local. mas preciso pegar o a url que vem do banco seria a var = slider_url
      Se alguém puder me ajudar fico muito grato!
      private void makeGetSliderRequest() {         JsonArrayRequest req = new JsonArrayRequest(BaseURL.GET_SLIDER,                 new Response.Listener<JSONArray>() {                     @Override                     public void onResponse(JSONArray response) {                         Log.d(TAG, response.toString());                         try {                             // Parsing json array response                             // loop through each json object                             // arraylist list variable for store data;                             final ArrayList<HashMap<String, String>> listarray = new ArrayList<>();                             for (int i = 0; i < response.length(); i++) {                                 JSONObject jsonObject = (JSONObject) response                                         .get(i);                                 final HashMap<String, String> url_maps = new HashMap<String, String>();                                 url_maps.put("slider_title", jsonObject.getString("slider_title"));                                 url_maps.put("slider_image", BaseURL.IMG_SLIDER_URL + jsonObject.getString("slider_image")); url_maps.put("slider_url", BaseURL.IMG_SLIDER_URL + jsonObject.getString("slider_url"));                                 listarray.add(url_maps);                             }                             for (HashMap<String, String> name : listarray) {                                 final TextSliderView textSliderView = new TextSliderView(getActivity());                                 // initialize a SliderLayout                                 textSliderView                                         .description(name.get("slider_title"))                                         .image(name.get("slider_image"))                                         .setScaleType(BaseSliderView.ScaleType.Fit);                                 //adiciono o slider title no slider                                 textSliderView.bundle(new Bundle());                                 textSliderView.getBundle()                                         .putString("extra", name.get("slider_title"));                                 imgSlider.addSlider(textSliderView);                                 textSliderView.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {                                     @Override // Aqui eu capturo o clique na imagem e abro a url. // Preciso pegar a url desta string (slider_url) e inserir no lugar da string url                                     public void onSliderClick(BaseSliderView slider) {                                         String url = "http://www.google.com.br";                                         Toast.makeText(getActivity(), "clicou:", Toast.LENGTH_SHORT).show();                                         Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));                                         startActivity(browserIntent);                                     }                                 });                             }                         } catch (JSONException e) {                             e.printStackTrace();                             Toast.makeText(getActivity(),                                     "Error: " + e.getMessage(),                                     Toast.LENGTH_LONG).show();                         }                         hidepDialog();                     }                 }, new Response.ErrorListener() {             @Override             public void onErrorResponse(VolleyError error) {                 VolleyLog.d(TAG, "Error: " + error.getMessage());                 Toast.makeText(getActivity(),                         error.getMessage(), Toast.LENGTH_SHORT).show();                 hidepDialog();             }         });         // Adding request to request queue         AppController.getInstance().addToRequestQueue(req);     }  
    • Por cristianomg
      E ae pessoal, gostaria de uma orientação sobre um erro que estou tomando e não consegui contornar corretamente, meu conhecimento com android é de basico autodidata.
      Bom o cenário é eu ger uma lista vinda de uma api que traz dados do banco de dados , imagem, nome de cidade e descrição.
      Quero que ao clicar seja aberta uma activity onde a mesma exiba os dados da cidade selecionada exibindo a imagem maior, nome cidade, descrição e data de saida do turismo.
      Pois bem quando eu clico num item da lista tomo o erro:
       
      java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference at android.content.ComponentName.<init>(ComponentName.java:77) at android.content.Intent.<init>(Intent.java:4280) at garagetalke.com.laftturismo.adaptador.GramadoAdapter$GramadoHolder.onClick(GramadoAdapter.java:97)  
      Eu uso fragmento para gerar a lista no recyclerView e criei um activity DetalhesLugares com o seu xml certinho para exibir os dados da cidade que eu cliquei, o meu fragmento que gera a lista de itens esta abaixo:
       
      fragment_lista_lugares_gramado.java
      public class fragment_lista_lugares_gramado extends Fragment implements Response.Listener<JSONObject>, Response.ErrorListener{ private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM2 = "param2"; private String mParam1; private String mParam2; RecyclerView recyclerAnuncio; ArrayList<Lugares> listaLugares; ProgressDialog progresso; RequestQueue request; JsonObjectRequest jsonObjectReq; private fragment_lista_lugares_gramado.OnFragmentInteractionListener mListener; public fragment_lista_lugares_gramado() { // Required empty public constructor } public static fragment_lista_lugares_gramado newInstance(String param1, String param2) { fragment_lista_lugares_gramado fragment = new fragment_lista_lugares_gramado(); Bundle args = new Bundle(); args.putString(ARG_PARAM1, param1); args.putString(ARG_PARAM2, param2); fragment.setArguments(args); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View vista = inflater.inflate(R.layout.places_recycler_list, container, false); listaLugares=new ArrayList<>(); recyclerAnuncio= (RecyclerView) vista.findViewById(R.id.listRecycler); recyclerAnuncio.setLayoutManager(new LinearLayoutManager(this.getContext())); recyclerAnuncio.setHasFixedSize(true); request= Volley.newRequestQueue(getContext()); carregarWEBService(); //aqui chamo minha API que me traz os dados do banco corretamente e exibe no App return vista; } private void carregarWEBService() { ....minha API que faz a busca } // TODO: Rename method, update argument and hook method into UI event public void onButtonPressed(Uri uri) { if (mListener != null) { mListener.onFragmentInteraction(uri); } } @Override public void onDetach() { super.onDetach(); mListener = null; } @Override public void onErrorResponse(VolleyError error) { progresso.hide(); Toast.makeText(getContext(), "Não foi possível listar os lugares " +error.toString() , Toast.LENGTH_SHORT).show(); Log.i("ERROR", error.toString()); } @Override public void onResponse(JSONObject response) { progresso.hide(); Lugares lugares = null; Retorno do meu json da API - OK try { for(int i=0; i<json.length();i++){ lugares = new Lugares(); JSONObject jsonObject = null; jsonObject = json.getJSONObject(i); lugares.setId(jsonObject.optString("id")); //seto todos os dados de retorno - OK listaLugares.add(lugares); } progresso.hide(); GramadoAdapter adapter = new GramadoAdapter(listaLugares, fragment_lista_lugares_gramado.this); recyclerAnuncio.setAdapter(adapter); }catch (JSONException e){ e.printStackTrace(); progresso.hide(); Toast.makeText(getContext(), "Não foi possível listar os lugares " +response , Toast.LENGTH_SHORT).show(); } } public interface OnFragmentInteractionListener { // TODO: Update argument type and name void onFragmentInteraction(Uri uri); } }  
      Aqui esta meu Adapter : GramadoAdapter.java
       
      public class GramadoAdapter extends RecyclerView.Adapter<GramadoAdapter.GramadoHolder> { ArrayList<Lugares> listaLugares = new ArrayList<>(); fragment_lista_lugares_gramado ctx; Context fragment_lista_lugares_gramado; public GramadoAdapter(ArrayList<Lugares> listaLugares, fragment_lista_lugares_gramado ctx ){ this.listaLugares = listaLugares; this.ctx = ctx; } @NonNull @Override public GramadoHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_lugares,parent,false); GramadoHolder gramadoViewHolder = new GramadoHolder(view, fragment_lista_lugares_gramado,listaLugares); return gramadoViewHolder; } @Override public void onBindViewHolder(@NonNull GramadoHolder holder, int position) { Lugares LUG = listaLugares.get(position); holder.id.setText(LUG.getId().toString()); holder.cidade.setText(LUG.getCidade()); holder.descricao.setText(LUG.getDescricao()); holder.dataSaida.setText("Quando? "+(LUG.getDataSaida())); if(listaLugares.get(position).getImagem() != null){ holder.idImagem.setImageBitmap(LUG.getImagem()); }else{ holder.idImagem.setImageResource(R.drawable.publicacao_sem_foto); } } @Override public int getItemCount() { return listaLugares.size(); } public class GramadoHolder extends RecyclerView.ViewHolder implements View.OnClickListener { TextView id, cidade, descricao, dataSaida, lugaresOnibus, valor, rating; ImageView idImagem; ArrayList<Lugares> listaLugares = new ArrayList<Lugares>(); Context ctx; Context fragment_lista_lugares_gramado; public GramadoHolder(View view, Context fragment_lista_lugares_gramado, ArrayList<Lugares> listaLugares) { super(view); this.listaLugares = listaLugares; view.setOnClickListener(this); id = (TextView) view.findViewById(R.id.id_place); cidade = (TextView) view.findViewById(R.id.cidade_place); descricao = (TextView) view.findViewById(R.id.descricao_place); dataSaida = (TextView) view.findViewById(R.id.datasaida_place); idImagem = view.findViewById(R.id.place_image); } @Override public void onClick(View v) { int position = getAdapterPosition(); Lugares lugares = this.listaLugares.get(position); //Eu acho que aqui esta meu problema mas nao sei o que pode ser...tipo nao abre a activity detalhes //ja tentei getActivity(), getApplication() e outras coisas tb, como é o fragmento que gera a lista //então nao o que fazer pra instanciar Intent intent = new Intent(fragment_lista_lugares_gramado, DetalhesLugares.class); intent.putExtra("tvImagem",lugares.getImagem()); intent.putExtra("tvCidade",lugares.getCidade()); intent.putExtra("tvdescricao",lugares.getDescricao()); this.fragment_lista_lugares_gramado.startActivity(intent); } } }  
      DetalhesActivity.java
      ImageView imageView; TextView text_Cidade, text_Descricao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_detalhes_lugares); imageView = (ImageView) findViewById(R.id.tvImagem); text_Cidade = (TextView) findViewById(R.id.tvCidade); text_Descricao = (TextView) findViewById(R.id.tvDesricao); imageView.setImageResource(getIntent().getIntExtra("tvImagem",00)); text_Cidade.setText("Cidade: "+getIntent().getStringExtra("tvCidade")); text_Descricao.setText("Descrição: "+getIntent().getStringExtra("tvdescricao")); }   Alguém sabe me orientar do que fazer pra conseguir?
       
    • Por kathsystems
      Olá,
       
      Pessoal estou tentando criar um arquivo xml em tempo de execução no Android: "CliendDataSet.SaveToFile('/data/data/App/files/Arquivo.xml');" .Não da erro mas não cria o arquivo.
       
      Meu Mainfast:
       
      <?xml version="1.0" encoding="utf-8"?>
      <!-- BEGIN_INCLUDE(manifest) -->
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package="%package%"
              android:versionCode="%versionCode%"
              android:versionName="%versionName%"
              android:installLocation="%installLocation%">
          <!-- This is the platform API where NativeActivity was introduced. -->
          <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" />
          String[] permissoes = new String[]{
              Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS,};
              PermissionUtils.validate(this, 0, permissoes);
      <%uses-permission%>
          <uses-permission android:name="android.permission.INTERNET" />
          <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
          <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
          <uses-permission android:name="android.permission.WRITE_OWNER_DATA" />
          <uses-permission android:name="android.permission.READ_OWNER_DATA" />
          <uses-feature android:glEsVersion="0x00020000" android:required="True"/>
          <application android:persistent="%persistent%"
              android:restoreAnyVersion="%restoreAnyVersion%"
              android:label="%label%"
              android:debuggable="%debuggable%"
              android:largeHeap="%largeHeap%"
              android:icon="%icon%"
              android:theme="%theme%"
              android:hardwareAccelerated="%hardwareAccelerated%">
       
      alguém sabe onde estou errando?
       
    • Por Motta
      Vulnerabilidade perigosa impacta todos os smartphones Android
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.