Jump to content

Search the Community

Showing results for tags 'ionic'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 22 results

  1. Olá galera, Boa tarde! Estou com um probleminha em Ionic que está quebrando muito minha cabeça por dias. Método de pagamento do paypal aparece em meu site, mas não aparece no app ionic, o que será? Já tentei de tudo. Esse app faz comunicação via API do Woocommerce, e lá está habilitado a forma de pagamento com PayPal, porém só não aparece no app, já que na página de checkout no meu site, aparece. Segue o código da página de checkout do app: import { Component, Inject } from '@angular/core'; import { NavController, NavParams, AlertController, Loading, LoadingController, ToastController, App } from 'ionic-angular'; import { PlacedPage } from '../placed/placed'; import { PaymentGateway } from "../../models/payment-gateway.models"; import { Constants } from "../../models/constants.models"; import { WordpressClient } from '../../providers/wordpress-client.service'; import { Global } from '../../providers/global'; import { Subscription } from "rxjs/Subscription"; import { CartItem } from "../../models/cart-item.models"; import { OrderRequest } from "../../models/order-request.models"; import { Address } from "../../models/address.models"; import { ShippingLine } from "../../models/shipping-line.models"; import { UserResponse } from "../../models/user-response.models"; import { OrderResponse } from "../../models/order-response.models"; import { Currency } from "../../models/currency.models"; import { InAppBrowser, InAppBrowserOptions } from '@ionic-native/in-app-browser'; import { sha512 } from 'js-sha512'; import { APP_CONFIG, AppConfig } from '../../app/app.config'; import { OrderUpdateRequest } from '../../models/order-update-request.models'; import { Coupon } from '../../models/coupon.models'; import { HomePage } from '../home/home'; import { TranslateService } from '@ngx-translate/core'; import { Helper } from '../../models/helper.models'; import { ShippingMethod } from '../../models/shipping-method.models'; import { PayPal, PayPalPayment, PayPalConfiguration, PayPalPaymentDetails } from '@ionic-native/paypal'; @Component({ selector: 'page-payment', templateUrl: 'payment.html', providers: [WordpressClient] }) export class PaymentPage { private loading: Loading; private loadingShown: Boolean = false; private placedPagePushed: Boolean = false; private paymentDone: Boolean = false; private paymentFailAlerted: Boolean = false; private subscriptions: Array<Subscription> = []; private paymentGateways = new Array<PaymentGateway>(); private cartItems: Array<CartItem>; private selectedPaymentGateway; private selectedAddress: Address; private orderRequest: OrderRequest; private orderId = -1; private user: UserResponse; private totalItems = 0; private total = 0; private couponApplied = false; private pickupTime = 0; private deliveryTime = 0; private shippingChargeGlobal: number; constructor(@Inject(APP_CONFIG) private config: AppConfig, public translate: TranslateService, private iab: InAppBrowser, private toastCtrl: ToastController, public navCtrl: NavController, private navParams: NavParams, private service: WordpressClient, private loadingCtrl: LoadingController, private alertCtrl: AlertController, public appCtrl: App) { this.cartItems = this.navParams.get('cart'); this.totalItems = this.navParams.get('totalItems'); this.total = this.navParams.get('total'); this.shippingChargeGlobal = this.navParams.get('shippingChargeGlobal'); let paymentGateways = JSON.parse(window.localStorage.getItem(Constants.PAYMENT_GATEWAYS)); this.selectedAddress = JSON.parse(window.localStorage.getItem(Constants.SELECTED_ADDRESS)); if (paymentGateways != null) { for (let pg of paymentGateways) { if (pg.enabled && this.paymentImplemented(pg.id)) { this.paymentGateways.push(pg); } } } } ionViewWillLeave() { this.subscriptions.forEach((subscription: Subscription) => { subscription.unsubscribe(); }); this.dismissLoading(); } paymentImplemented(id) { return id === "pumcp" || id === "payuindia" || id === "cod"; } paymentMethod(paymentGateway) { this.selectedPaymentGateway = paymentGateway; } placedPage() { if (this.selectedPaymentGateway == null) { this.translate.get('field_error_payment_method').subscribe(value => { this.showToast(value); }); } else { this.orderRequest = new OrderRequest(); this.orderRequest.payment_method = this.selectedPaymentGateway.id ? this.selectedPaymentGateway.id : "cod"; this.orderRequest.payment_method_title = this.selectedPaymentGateway.title ? this.selectedPaymentGateway.title : "cod"; this.orderRequest.set_paid = false; this.orderRequest.billing = this.selectedAddress; this.orderRequest.shipping = this.selectedAddress; this.user = JSON.parse(window.localStorage.getItem(Constants.USER_KEY)); this.orderRequest.customer_id = String(this.user.id); let selectedShippingMethod: ShippingMethod = JSON.parse(window.localStorage.getItem(Constants.SELECTED_SHIPPING_METHOD)); if (selectedShippingMethod) { let shippingTotal = 0; for (let ci of this.cartItems) { if (!ci.product.shipping_cost_use_global && ci.product.shipping_cost != 1) shippingTotal = shippingTotal + ci.product.shipping_cost; } if (this.shippingChargeGlobal != -1) { shippingTotal = shippingTotal + this.shippingChargeGlobal; } this.orderRequest.shipping_lines = new Array<ShippingLine>(); this.orderRequest.shipping_lines.push(new ShippingLine(selectedShippingMethod.method_id, selectedShippingMethod.method_title, String(shippingTotal))); } this.orderRequest.line_items = this.cartItems; for (let item of this.orderRequest.line_items) { item.product = null; } this.translate.get('order_creating').subscribe(value => { this.presentLoading(value); }); let coupon: Coupon = JSON.parse(window.localStorage.getItem(Constants.SELECTED_COUPON)); let subscription: Subscription = this.service.createOrder(window.localStorage.getItem(Constants.ADMIN_API_KEY), this.orderRequest).subscribe(data => { this.orderId = data.id; if (coupon) { this.applyCoupon(coupon); } else { this.orderPlaced(); } }, err => { console.log(err); this.dismissLoading(); let orderId = Helper.extractOrderIdFromError(err); if (orderId != -1) { this.orderId = orderId; if (coupon) { this.applyCoupon(coupon); } else { this.orderPlaced(); } } else { this.translate.get('order_failed').subscribe(value => { this.showToast(value); }); this.appCtrl.getRootNav().setRoot(HomePage); } }); this.subscriptions.push(subscription); } } applyCoupon(coupon) { let couponSubs: Subscription = this.service.applyCouponCode(window.localStorage.getItem(Constants.ADMIN_API_KEY), String(this.orderId), coupon.code).subscribe(data => { this.couponApplied = true; window.localStorage.removeItem(Constants.SELECTED_COUPON); this.translate.get('confirm_order_coupon_applied').subscribe(value => { this.showToast(value); }); this.orderPlaced(); }, err => { console.log(err); this.dismissLoading(); }); this.subscriptions.push(couponSubs); } orderPlaced() { this.dismissLoading(); if (this.selectedPaymentGateway.id && this.selectedPaymentGateway.id === "cod") { this.clearCart(); this.navCtrl.setRoot(PlacedPage); } else if (this.selectedPaymentGateway.id === "pumcp" || this.selectedPaymentGateway.id === "payuindia") { this.initPayUMoney(); } else { this.translate.get('order_placed_cod').subscribe(value => { this.showToast(value); }); this.clearCart(); this.navCtrl.setRoot(PlacedPage); } } initPayUMoney() { let name = this.user.first_name && this.user.first_name.length ? this.user.first_name : this.user.username; let mobile = this.user.username; let email = this.user.email; let bookingId = String(Math.floor(Math.random() * (99 - 10 + 1) + 10)) + this.orderId; let productinfo = this.orderId; let salt = this.config.payuSalt; let key = this.config.payuKey; let amt = this.couponApplied ? this.total : this.totalItems; let string = key + '|' + bookingId + '|' + amt + '|' + productinfo + '|' + name + '|' + email + '|||||||||||' + salt; let encrypttext = sha512(string); //let url = "payumoney/payuBiz.html?amt=" + amt + "&name=" + name + "&mobileNo=" + mobile + "&email=" + email + "&bookingId=" + bookingId + "&productinfo=" + productinfo + "&salt=" + salt + "&key=" + key; let url = "payumoney/payuBiz.html?amt=" + amt + "&name=" + name + "&mobileNo=" + mobile + "&email=" + email + "&bookingId=" + bookingId + "&productinfo=" + productinfo + "&hash=" + encrypttext + "&salt=" + salt + "&key=" + key; let options: InAppBrowserOptions = { location: 'yes', clearcache: 'yes', zoom: 'yes', toolbar: 'no', closebuttoncaption: 'back' }; const browser: any = this.iab.create(url, '_blank', options); browser.on('loadstop').subscribe(event => { browser.executeScript({ file: "payumoney/payumoneyPaymentGateway.js" }); if (event.url == "http://localhost/success.php") { this.paymentSuccess(); browser.close(); } if (event.url == "http://localhost/failure.php") { this.paymentFailure(); browser.close(); } }); browser.on('exit').subscribe(event => { if (!this.paymentDone && !this.paymentFailAlerted) { this.paymentFailure(); } }); browser.on('loaderror').subscribe(event => { this.showToast('something_went_wrong'); }); } paymentFailure() { this.paymentFailAlerted = true; let subscription: Subscription = this.service.updateOrder(window.localStorage.getItem(Constants.ADMIN_API_KEY), String(this.orderId), new OrderUpdateRequest('cancelled')).subscribe(data => { }, err => { console.log(err); }); this.subscriptions.push(subscription); this.translate.get(['payment_fail_title', 'payment_fail_message', 'ok']).subscribe(res => { let alert = this.alertCtrl.create({ title: res.payment_fail_title, message: res.payment_fail_message, buttons: [{ text: res.ok, role: 'cancel', handler: () => { this.done(); console.log('Okay clicked'); } }] }); alert.present(); }); } paymentSuccess() { this.paymentDone = true; this.clearCart(); this.translate.get('just_a_moment').subscribe(value => { this.presentLoading(value); }); let subscription: Subscription = this.service.updateOrder(window.localStorage.getItem(Constants.ADMIN_API_KEY), String(this.orderId), { set_paid: true }).subscribe(data => { this.done(); }, err => { this.done(); this.paymentSuccess(); console.log(err); }); this.subscriptions.push(subscription); } done() { if (!this.placedPagePushed) { this.placedPagePushed = true; this.dismissLoading(); this.appCtrl.getRootNav().setRoot(this.paymentFailAlerted ? HomePage : PlacedPage); } } private presentLoading(message: string) { this.loading = this.loadingCtrl.create({ content: message }); this.loading.onDidDismiss(() => { }); this.loading.present(); this.loadingShown = true; } private dismissLoading() { if (this.loadingShown) { this.loadingShown = false; this.loading.dismiss(); } } private presentErrorAlert(msg: string) { let alert = this.alertCtrl.create({ title: 'Error', subTitle: msg, buttons: ['OK'] }); alert.present(); } showToast(message: string) { let toast = this.toastCtrl.create({ message: message, duration: 3000, position: 'bottom' }); toast.onDidDismiss(() => { console.log('Dismissed toast'); }); toast.present(); } clearCart() { let cartItems = new Array<CartItem>(); window.localStorage.setItem('cartItems', JSON.stringify(cartItems)); } }
  2. O problema é: eu quero estabelecer comunicação entre o meu desktop e meu dispositivo inteligente android. Estou tentando um passo simples mas recebo "device not found" como retorno é aqui que baseio minha codificação: https://ionicframework.com/docs/native/serial/ Este é o código Há poucos conteúdo sobre esse recurso na internet.
  3. Edgard Hufelande

    Sugestão sobre criptografia de senha

    Estou desenvolvendo um app que será aberto ao público pra atender a necessidade de um município... As senhas no banco estou salvando criptografadas usando Bcrypt, porém tenho uma dúvida no lado cliente, tenho uma API Rest para comunicação entre o app e o servidor, no momento do login ou do cadastro eu já deveria enviar essa senha criptografada na requisição ou envio a senha normal e criptografo no lado do servidor? Resumindo, não quero uma solução, quero uma sugestão sobre se devo criptografar a senha no lado cliente ou no lado servidor. Desde já grato pela atenção.
  4. Estou começando agora. tenho dois códigos PHP. Um envia uma imagem e o outro algumas informações. Ambos de um aplicativo feito em IONIC. Teria como juntar esses dois códigos para que faça apenas um insert? Código que insere informações <?php header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Headers: Content-Type"); header("Access-Control-Allow-Methods", "GET, POST, OPTIONS, PUT, DELETE"); include "db.php"; $input = file_get_contents('php://input'); $data = json_decode($input,true); $message = array(); if($data['action'] == "insert"){ $motivo = $data['motivo']; $horario = $data['horario']; $q = mysqli_query($con,"INSERT INTO `imovel` (`motivo`, `horario`) VALUES ('$motivo', '$horario')"); if($q){ $message['status'] = "success"; } else{ $message['status'] = "error"; } echo json_encode($message); } echo mysqli_error($con); ?> Código de inserir imagem: <?php include '../ionx/db.php'; $target_dir = "images/"; $target_file = $target_dir . basename($_FILES["photo"]["name"]); $imagename = basename($_FILES["photo"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); $check = getimagesize($_FILES["photo"]["tmp_name"]); if($check !== false) { echo "Arquivo é uma imagem - " . $check["mime"] . "."; $uploadOk = 1; if (move_uploaded_file($_FILES["photo"]["tmp_name"], $target_file)) { $q = mysqli_query($con,"INSERT INTO `imovel` (`imagem`) VALUES ('$imagename')"); } else { echo "Ocorreu um erro"; } } else { echo "Arquivo não é uma imagem"; $uploadOk = 0; } ?> Há alguma maneira de unir esses dois códigos para que eu consiga inserir a informação digitada e a imagem na tabela?
  5. luiz_paulo_andrade

    Download dentro de um iframe no android

    Estou desenvolvendo um app com ionic que tem uma página webview dentro de um iframe, nessa webview existe um botão de download que funciona normalmente no browser, mas no android não funciona. Creio que o Android esteja bloqueando esse download, gostaria de saber como habilitar para que o download seja feito diretamente, como faz no browser.
  6. Pessoal boa tarde, eu estou construindo uma aplicação de vendas pelo ionic3, e estou com o seguinte problema. Tenho a tela de vendas, aonde eu faço a exibição dos produtos através de um botão, esse botão me gera uma lista de itens vinda do firebase. Cada item, tem um checkbox para marcar, ou seja o usuário poderá marcar 1 ou 10 itens por exemplo. No final da seleção, tenho um botão com nome de ESCOLHER, esse chama uma função que irá capturar os itens que o usuário marcou para que eu possa manipular e enviar ao banco de dados. Porém ao executar esta função, e testar pelo console.log ele não está me retornando nada, alguém pode me passar alguma dica ? //MINHA FUNÇÃO escolherProdutos(){ let produtosEscolhidos = []; for(let i=0; i < this.produtosLista.length; i++){ if(this.produtosLista[i].selecionado){ produtosEscolhidos.push(this.produtosLista[i]); } } console.log("Os produtos escolhidos são " +produtosEscolhidos); //FUNÇÃO QUE TESTEI, E ESTÁ FAZENDO A CAPTURA DO OBJETO PRODUTO (APENAS 1 PRODUTO) produtoEscolhido(produto){ this.produtoSelecionado = produto; this.produtoDescricao = this.produtoSelecionado.descricao; console.log(this.produtoSelecionado); } //MEU HTML <ion-item> <ion-label fixed class="label-format">Escolha os itens</ion-label> </ion-item> <button ion-button color="dark" class="botao-pesquisar" (click)="exibirItens()"> <ion-icon name="arrow-dropdown"></ion-icon> </button> <div *ngIf="botaoProdutos"> <ion-list *ngFor="let produto of produtosLista | async"> <ion-item> <ion-label>{{produto.descricao}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{produto.preco}}</ion-label> <ion-checkbox [(ngModel)]="selecionado" (ionChange)="produtoEscolhido(produto)"></ion-checkbox> <ion-input type="number" placeholder="Qtd" color="dark"></ion-input> </ion-item> </ion-list> <button ion-button color="dark" (click)="escolherProdutos()">Escolher</button> </div>
  7. Eu estou criando um aplicativo em que embaixo do conteúdo da página eu tenho a opção do usuário fazer um comentário. Estou usando o firebase para fazer cadastro e login e já até consegui gravar a mensagem no banco de dados, mas só ela, precisava colocar o nome do usuário ou username, e a data que o comentário foi feito.------------------ Meu html está assim: <ion-content #content id="content"> <ion-card *ngFor="let message of messages"> <ion-card-header> {{message.nome}} </ion-card-header> <ion-card-content> {{message.mensagem}} </ion-card-content> <ion-footer> <ion-toolbar> <ion-input placeholder="Comente algo..." [(ngModel)]="message"></ion-input> <ion-buttons end> <button ion-button icon-right (click)="sendMessage()"> Enviar <ion-icon name="send"></ion-icon> </button> </ion-buttons> --------------------------meu ts está assim: export class Cap1SegObsPage { @ViewChild("content") content: any; username: string message: string = "" messages = []; constructor(public navCtrl: NavController) { this.getMessages(); } getMessages(){ var messagesRef = firebase.database().ref().child("mensSegObsCap1"); messagesRef.on("value", (snap) => { var data = snap.val(); this.messages = []; for(var key in data){ this.messages.push(data[key]); } this.scrollToBottom(); }); } scrollToBottom(){ var contentEnd = document.getElementById("content-end").offsetTop; this.content.scrollTo(0, contentEnd, 300); } sendMessage(){ var messagesRef = firebase.database().ref().child("mensSegObsCap1"); messagesRef.push({mensagem: this.message, nome: this.username}); this.message = ""; } }
  8. dtdigital

    ionic 4 to apk ?

    Ola eu tava trabalhando com ionic 3 mas achei bem interessante o ionic 4 mas única coisa que não soube fazer é cira uma apk tanto para o ios tanto para android . Portanto se algem sabe como posso fazer para gera o apk com o ionic 4 eu agradeço?
  9. Caio Lucas Teixeira

    Smart House mobile com Ionic 3

    Olá, poderia me ajudar no TCC? preciso desenvolver uma página mobile como esta na imagem abaixo, estou utilizando Ionic 3 (Angular, TypeScript, HTML, CSS, PHP), e phppgadmin. a ideia é de uma página aonde eu possa navegar pelos ambientes(quarto, sala, cozinha) e achar todos os componentes(luzes,janelas, etc..) que estão ativados ou desativados; Estão vendo essas caixas coloridas? elas seriam os componentes, eu precisaria selecionar os componentes cadastrados no banco nesse ambiente e popular essa área com essas caixas com o nome do componente e o status(ativado ou desativado), como poderia fazer essa população? seria um select e um for? nessa caixa retangular fina branca que está escrito "QUICKLOOK" estaria o nome do ambiente, e do lado um botão "<" e do lado direito ">" para realizar a paginação dos ambientes cadastrados no banco de dados, como poderia realizar essa paginação? um protótipo que eu fiz até o momento: fiz as caixas vermelhas com gridlayout em SCSS. pfv, me ajudem, como poderia realizar essas duas funções (paginação dos ambientes e a "população" dos componentes)?
  10. Qual a maneira mais simples e que tecnologias utilizar para gravar/editar informações no mobile usando Ionic, de forma que offline ele grave as informações localmente e ao estabelecer conecção wifi ou 3g ele sincronizar essa informações em um outro banco/servidor tipo MariaDB.
  11. Olá , vou realizar um exemplo para demonstrar minha duvida.. Vamos supor que tenho um App que agenda uma tarefa por data e hora, esse agendamento é realizado por 1 usuário. Outros usuários também poderão ver a tarefa agendada por esse usuário. Se meu usuário agendou uma tarefa "X" para o dia 20 de outubro de 2017 às 20:00, é possível enviar uma notificação push 1 hora antes? ou até mesmo o tempo que eu quiser para ele confirmar essa tarefa?
  12. Estou fazendo iniciando um app com Ionic 3, e utilizando a API do google para geolocalização. Segui tutoriais e mesmo assim deu esse erro quando abro a página que deveria aparecer o mapa " Runtime Error Uncaught (in promise): TypeError: Cannot read property 'firstChild' of null " Já procurei em alguns lugares e não encontro solução, nenhuma funciona. To precisando de ajuda com esses mapinhas. HTML da página inicial... <ion-header> <ion-navbar> <ion-title> Teste </ion-title> </ion-navbar> </ion-header> <ion-content padding> <ion-list> <ion-item> Latitude: {{lat}} </ion-item> <ion-item> Longitude: {{lon}} </ion-item> </ion-list> <button (click)="openMap()">Mapa</button> </ion-content> .ts da página inicial: import { Component } from '@angular/core'; import { NavController } from 'ionic-angular'; import { Geolocation } from '@ionic-native/geolocation'; import { MapPage } from '../map/map'; @Component({ selector: 'page-home', templateUrl: 'home.html' }) export class HomePage { lat:any=0.0; lon:any=0.0; constructor(public navCtrl: NavController, public geolocation: Geolocation) { //[ .. outra parte do código .. ] this.geolocation.getCurrentPosition().then((resp) => { // resp.coords.latitude // resp.coords.longitude this.lat = resp.coords.latitude; this.lon = resp.coords.longitude; }).catch((error) => { console.log('Error getting location', error); }); let watch = this.geolocation.watchPosition(); watch.subscribe((data) => { // data can be a set of coordinates, or an error (if an error occurred). // data.coords.latitude // data.coords.longitude }); } openMap(){ this.navCtrl.push(MapPage); } } //[ .. outra parte do código .. ] //} HTML da página do mapa: <ion-header> <ion-navbar> <ion-title>map</ion-title> </ion-navbar> </ion-header> <ion-content padding> <div id="mapa" > </div> </ion-content> .ts da página do mapa: import { Component } from '@angular/core'; import { IonicPage, NavController, NavParams, Platform } from 'ionic-angular'; import '../map/map'; import { Geolocation } from '@ionic-native/geolocation'; declare var google: any; /** * Generated class for the MapPage page. * * See https://ionicframework.com/docs/components/#navigation for more info on * Ionic pages and navigation. */ @IonicPage() @Component({ selector: 'page-map', templateUrl: 'map.html', }) export class MapPage { private initPage(){ let LatLng = new google.maps.LatLng(-22.913293, -43.688930); let mapOptions = { center: LatLng, zoom: 15, mapTypeId: google.maps.MapTypeId.ROADMAP, disableDefaultUI: true } let elemento = document.getElementById('mapa'); let mapa = new google.maps.Map(elemento, mapOptions); } //ionViewDidLoad() { // console.log('ionViewDidLoad MapPage'); //} constructor(public navCtrl: NavController, public navParams: NavParams, platform: Platform) { platform.ready().then(() =>{ this.initPage(); }, (err) => { console.log(err); }); } } E na index.html (só uma parte): <!--para o api do google maps .................................................................. --> <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com; script-src 'self' https://*.googleapis.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';"> <title>Ionic App</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="format-detection" content="telephone=no"> <meta name="msapplication-tap-highlight" content="no"> <link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico"> <link rel="manifest" href="manifest.json"> <meta name="theme-color" content="#4e8ef7"> <!-- google maps .............................................................................. --> <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?&sensor=false"></script> Talvez seja informação demais, mas, acho melhor que tenha mais do que menos.
  13. 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.
  14. Olá pessoal estou com o seguinte desafio: Fazer um App com o Ionic que funcione offline onde o mesmo precisa ler dados enviados por uma REST API, dados esses vindos de um ERP. Preciso armazena-los localmente para usar a aplicação offline (pensei em armazenar no SQLite), e depois de efetuar algumas mudanças nos dados offline sincronizar as mudanças feitas com a API que se comunica com o ERP. Penso em fazer da seguinte maneira: Ler os dados da REST API e então com base nos dados recebidos criar um banco de dados local com SQLite e popular com os dados, então com a app offline fazer as devidas mudanças nos dados, depois disso quando o dispositivo localizasse conexão com a internet ele sincronizaria os dados modificados no banco local do aparelho com a API. Vocês acham que o caminho certo é esse? Obrigado.
  15. E ai galera, Estou fazendo um trabalho em ionic, mas não manjo muito disso. Preciso fazer um sliding item, pra excluir um registro da lista. Todos os exemplos que achei são feitos com um botão de excluir. (tipo esse https://ionicframework.com/docs/components/#sliding-list) Queria que ao deslizar já excluísse. É possível? Algum exemplo?
  16. flavionash

    Custom-url-scheme com Ionic

    Galera estou fazendo um app ionic que se comunica com outro app no dispositivo que é nativo através de applinks. Utilizei o plugin https://github.com/EddyVerbruggen/Custom-URL-scheme para fazer essa comunicação e deu tudo certo, apenas no retorno das informações pelo app da empresa de pagamentos eu consigo ver a url com o scheme do meu app pela function: function handleOpenURL(url) { console.log("received url: " + url); } O pro é que só consigo visualizar a url no index.html da minha aplicação e preciso desse retorno no meu controller onde começo a comunicação com o app da empresa de pagamentos, pois preciso pegar o retorno tratar e enviar para o meu banco de dados. Alguém pode me ajudar a resolver isso ?
  17. flavionash

    Applink Android com Ionic 1

    Olá pessoal, gostaria de ajuda de vocês com um problema, desenvolvi um aplicativo android utilizando ionic 1 com angulajs1 e preciso abrir outro app no meu device utilizando um botão no meu aplicativo e passar parâmetros nessa requisição, tentei fazer isto com o código abaixo mas não funciona. Alguém já fez isso ? window.open('app://payment?scheme=exe&key=DFJSOIHFD54654DFSDGDSF54654&amount=100');
  18. Boa tarde, estou em um projeto de App de Guia Comercial e estou quebrando a cabeça em relação ao banco de dados, a duvida é a seguinte. O app é separado por categorias tipo Bares,Lanchonetes, churrascarias e preciso que esses dados que estão em meu banco de dados sejam exibidos separados nas categorias. Já procurei na internet algo sobre e não encontrei caso alguém possa me ajudar ficarei agradecido. Estou usando Ionic e AngularJS no Intel XDK com banco de dados local no Wamp Server.
  19. Olá pessoal, estou iniciando um projeto utilizando ionic framework e estou gostando de trabalhar com ele, precisei usar banco de dados e utilizei o SQLite, mas como sou novo no assunto não conheço nenhum SGBD que eu possa consultar meus registros e tabelas no banco de dados criado no meu aparelho. att,
  20. rhenan silverio

    Gerenciando APP

    Galera estou fazendo meu primeiro APP com IONIC e gostaria de saber se consigo criar um sistema web simples pra jogar imagens de promoção direto no aplicativo? daria pra fazer com qualquer linguagem? eu posso usar MySQL? podem me dar uma luz ? hahahaha abs,
  21. Olá pessoal comecei a desenvolver apps híbridas utilizando Ionic + Cordova tudo está indo bem. Criei uma nova aplicação ionic e fui adicionar a plataforma android com o comando: ionic platform add android. mas tive o seguinte erro: Error: Failed to find 'ANDROID_HOME' environment variable. Try setting setting it manually. Failed to find 'android' command in your 'PATH'. Try update your 'PATH' to include path to valid SDK directory. meu ~/.bashrc está assim: JAVA_HOME=/usr/lib/jvm/java-8-oracle export JAVA_HOME PATH=$PATH:$JAVA_HOME export ANDROID_HOME=/home/meuuser/Android/Sdk export ANDROID_TOOLS=/home/meuuser/Android/Sdk/tools export ANDROID_PLATFORM_TOOLS=/home/meuuser/Android/Sdk/platform-tools export PATH=${PATH}:/home/meuuser/android-sdk-linux/platform-tools export PATH=${PATH}:/home/meuuser/android-sdk-linux/tools Não sei o porque do erro. Uso o Ubuntu 16.04 64bits
  22. Estou criando uma API com o código a seguir, mas dá a mensagem no PHP de: "<br /> <b>Fatal error</b>: Call to a member function execute() on a non-object in <b>/home/u649998054/public_html/checkToken.php</b> on line <b>13</b><br />" A linha 13 é o $check = $check->fetchAll(); E no meu App surge a mensagem: "ionic.bundle.js:26794 SyntaxError: Unexpected token < in JSON at position 0 at Object.parse (native) at fromJson" O que posso estar fazendo de errado? <?php header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); header('Access-Control-Allow-Origin: http://localhost:8100'); include('connection.php'); $data = json_decode(file_get_contents("php://input")); $token = $data->token; $check = $db->query("SELECT * FROM usuario_app WHERE token=$token"); $check = $check->fetchAll(); if (count($check) == 1){ echo "authorized"; } else { echo "unauthorized"; } ?>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.