Jump to content

Search the Community

Showing results for tags 'cordova'.



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 16 results

  1. Já pesquisei e foi muito, e esse assunto não tem em lugar nenhum. Bem eu desenvolvi um CRUD com LOGIN e SESSION, em php ficou perfeito cada usuário com sua sessão funcionando no XAMPP, só que estou tentando, desenvolver um app pelo CORDOVA, via AJAX com estas mesmas características se tratando de cliente , servidor, ok, fiz sessão de login, registro e o CRUD, certo..tudo beleza,.. Até eu relacionar a tabela de login com a do crud aí lascou, o login eu consigo entrar e ser redirecionado para o CRUD e ao inserir sei lá "produtos" na tabela não róla, claro que a dor de cabeça é... as sessões LOCAL ou SESSION STORAGE se conversarem com a $_SESSAO php, eu fiz isso, tanto que o login que tem o START() lado servidor e o registro como já disse funcionam normalmente, agora percebi que o problema esta no start do CRUD, devo estar pecando no AJAX erro de principiante, tenho dúvidas e a pergunta é esta do titulo. Aos mais experientes peço ajuda.
  2. marcossantana10

    Upload de multiplos arquivos - Cordova

    Opa, to precisando muito de uma ajuda: estou tentando fazer o upload de arquivos de um app hibrido (rodando android) para um servidor. O código abaixo é executado sem erro, mas o upload não acontece. Será que alguem tem ideia de onde pode estar o erro? var images = []; var $imagesDiv; document.addEventListener("deviceready", init, false); function init() { $("#addPicture").on("touchend", selPic); $imagesDiv = $("#images"); $("#uploadPictures").on("touchend", uploadPics); } function selPic() { navigator.camera.getPicture(function(f) { var newHtml = "<img src='"+f+"'>"; $imagesDiv.append(newHtml); images.push(f); if(images.length === 1) { $("#uploadPictures").removeAttr("disabled"); } }, function(e) { alert("Error, check console."); console.dir(e); }, { quality: 50, sourceType: Camera.PictureSourceType.PHOTOLIBRARY, destinationType: Camera.DestinationType.FILE_URI }); } function uploadPics() { alert("Ok, going to upload "+images.length+" images."); var defs = []; var fd = new FormData(); images.forEach(function(i) { alert('processing '+i); var def = $.Deferred(); window.resolveLocalFileSystemURL(i, function(fileEntry) { alert('got a file entry'); fileEntry.file(function(file) { alert('now i have a file ob'); console.dir(file); var reader = new FileReader(); reader.onloadend = function(e) { var imgBlob = new Blob([this.result], { type:file.type}); fd.append('file'+(images.indexOf(i)+1), imgBlob); fd.append('fileName'+(images.indexOf(i)+1), file.name); def.resolve(); }; reader.readAsArrayBuffer(file); }, function(e) { alert('error getting file', e); }); }, function(e) { alert('Error resolving fs url', e); }); defs.push(def.promise()); }); $.when.apply($, defs).then(function() { alert("all things done"); var request = new XMLHttpRequest(); request.open('POST', 'url', true); request.send(fd); }); } Do lado do servidor, onde eu deveria receber a requisição e upar os arquivos, está conforme código abaixo: <?php header("Access-Control-Allow-Origin: *"); $imgFileName=date("Y").date("m").date("j")."_".$_POST['index']."_".rand(1000,9999).".jpg"; if(move_uploaded_file($_FILES['file']['tmp_name'], "anuncios/".$imgFileName)){ echo "upload ok"; //or anything you need } ?>
  3. 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)); } }
  4. tiagosp

    PhoneGap e Cordova

    Olá, estou iniciando o aprendizado de programação para android e ios; realizando uma pesquisa no Google, me deparei com o PhoneGap, logo segui o passo a passo para a instalação, baixei o PhoneGap, instalei, baixei o visualizado no celular (android) e editei o arquivo index.html como informado! Porém em nenhum momento me foi solicitado para apontar o java, sdk, imagem do android, nada.... Além disso, há muitas referências ao cordova, porém eu não entendo qual a funcionalidade dele.... estou perdido!
  5. 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.
  6. Estou com um problema ao utilizar uma função javascript, que utiliza a API v3 do Youtube, junto a um app Android criado com cordova. function getVideos(musicTitle) { //Get Results var url = "https://www.googleapis.com/youtube/v3/search?part=snippet%2C%20id&q=" + musicTitle + "&type=video&maxResults=10&key=AIzaSyDM24CBEVzX0OQfMGD2u0kao_CO5WMyavQ"; $.ajax({ url: url, method: "GET", dataType: "JSON", success: function (data) { console.log(data); $.each(data.items, function (i, item) { var output = getOutput(item); }); }, error: function (data) { console.log(data); } }); } Quando utilizo a função diretamente no navegador ela funciona perfeitamente, mas quando debugo no smartphone, a API me retorna o seguinte erro: Failed to load resource: the server responded with a status of 404 (Not Found) A função nem chega a me mostrar o que está recebendo no console. Porém o link na qual a API se comunica funciona normalmente, como vocês podem conferir: Só que ao debugar o app no meu smartphone ele retorna o erro. Se estiver no local errado do fórum me desculpem e podem mover para o local certo.
  7. Olá a todos Estou trabalhando com o cordova, e ele não da suporte ao input file do html. Gostaria de saber se á alguma forma de enviar uma imagem do arquivo pelo método formData do ajax. Tentei enviar a imagem como Blob para o meu banco de dados, mas não consigo trazer a imagem original de volta. Quando fiz teste com o inpt file, ele enviava a imagem sem problema com um parâmetro ContentType: "image/jpeg", pensei se haveria alguma forma de criar um parâmetro igual para mandar minha imagem com um formData.append('imagem', imagem); Também há o file transfer, mas não consigo enviar a imagem, e queria algo mais simples e objetivo para enviar a imagem. Obrigado
  8. hyper_pixel

    erro e como debugar app cordova

    Estou travado com erro [Unhandled rejection], não sei como resolver qual o problema não achei soluções procuro no google ele me traz respostas focadas no ionic. Eu fiz varias coisas, já instalei ultima versão do android studio, umas duas vezes, setei a JAVA_HOME, tenho o avd Nao sei como resolvo isso e uso o emulador. Alguem tem alguma ideia de como resolvo, na verdade quero um modo de debugar a app, de preferencia no crome, inspetor, tento usar o inspec do crome mas aperto no inspecionar e nao acontece nada. quando esta no modo emulador do avd. Se alguem conseguir me dar uma luz primeiro como resolvo esse erro. Segundo como debugar minha app com um emulador de preferencia o crome para saber linha a linha o que acontece. (node:12412) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): CordovaError: Current working directory is not a Cordova-based project. (node:12412) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
  9. Wesley Santos

    PhoneGap Plugin de AdMob

    E ai pessoal, alguém aqui já desenvolveu alguma coisa com o PhoneGap e precisou utilizar o plugin de AdMob? No momento estou tentando fazer essa implementação e estou sofrendo horrores D:
  10. Olá a todos, estou desenvolvendo um APP MOBILE usando cordova/phonegap com Jquery Mobile, porém estou a 2 dias quebrando a cabeça com a lógica e estruturação de páginas e transições. em todo lugar eu vejo a mesma coisa: <body> <div data-role="page" id="home"> <div role="main" class="ui-content"> <a href="#login" data-transition="slide">FAZER LOGIN</a> </div> </div> <div data-role="page" id="login"> <div role="main" class="ui-content"> <a href="#home" data-transition="slide">Voltar para Home</a> </div> </div> </body> Só que desta maneira, se o App tiver muitas páginas, ex. 100 páginas, todas as 100 páginas ficariam apenas no index.html?! oque iria dificultar muito o entendimento do código e seria uma home page extremamente pesada... Se eu organizar as páginas em outro diretório, ex: /view/ -> home.html login.html cadastro.html etc.html e na index.html, <a href="view/login.html" data-transition="slide">FAZER LOGIN</a> ficaria aceitável e legível, porém as transições entre uma página e outra fica horrível quando compilado para ADNROID OU IOS), fica horrível porque está chamando outro HTML e não carregando conteúdo da mesma página, ou seja, tem um atraso no carregamento do HTML... Eu gostaria de uma lógica de paginação onde eu pudesse organizar os arquivos HTML em uma pasta separada (ou algo do tipo) e quando necessário chama-los com uma transições fluidas e não quebradas... Alguém me da uma luz?
  11. 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 ?
  12. Boa tarde a todos. Amigos meu problema é o seguinte. Estou desenvolvendo um sistema com cordova utilizando jquery e jquery mobile, para fazer o login preciso enviar o email e a senha do usuário. Pego o login e a senha através do jQuery $("#email").val() e $("#senha").val() está como no código abaixo: $escopo = this; //utilizado para pegar os valores globais em quaisquer função do sistema $escopo.operador = { nome: "", chave: "" }; var dados = { email: $("#email").val(), senha: $("#senha").val() }; $.ajax({ contentType: "application/json; charset=utf-8", url: "http://192.168.1.100/sistema/public/login", data: dados, type: "post", success: function(data){ $escopo.operador.nome = data.nome; $escopo.operador.chave = data.chave; console.log(data); }, complete: function(){ //a desenvolver } }); A chamada ajax acontece, o valor de dados é passado normalmente só que o retorno é vazio, ou seja, data.nome e data.chave é igual a "". A api foi desenvolvida no laravel e testada com o postman e o resultado foi o esperado, mas dentro do app não funciona. O que percebi é que a api é chamada porém o $_POST['email] e $_POST['password'] (no laravel podemos usar $request['email] e $request['password']) chegam com valor "" na api, daí ocorre o que é correto o operador não é encontrado no banco de dados e é retornado um json vazio: { nome: "", chave:"" } A questão é: Porque os valores de email e senha não chegam na minha API. É questão de configuração do cordova? Desde já agradeço a atenção dos colegas. Obrigado!
  13. FlavioNashSilva

    App híbrida com Laravel + Ionic + Cordova

    Galera to com um projeto e gostaria de saber a opinião de vocês sobre a viabilidade de ser feito um back-end como laravel e o app com Ionic e Cordova, pois como é híbrido pesquisei um pouco sobre o assunto e vi que ele perde um pouco em relação a performance que uma App desenvolvida com a linguagem nativa. Meu projeto é fazer um app que faça um cadastro offline. armazene as informações em cache para assim que tiver conexão popular o banco de dados, apenas esse cadastro com uso de Qrcode e push notification. Vocês acham viável fazer com Laravel + Ionice + Cordova? obrigado a todos.
  14. heijimrt

    Google Maps posição dinâmica

    Olá, Realizei algumas pesquisas, porém, não encontrei uma resposta convincente. Estou para desenvolver um app que utiliza a API do Google Maps. Preciso que o posicionamento e os marcadores atualizem dinamicamente ( em tempo real, como em um gps ), sem que haja reload da aplicação. A principio vou utilizar php + mysql para o back e persistência ( guardar lat, long ) devolvendo um json. Enfm, pensei em duas soluções: 1. AJAX com um interval 2. Web sockets Gostaria de saber qual seria a melhor solução, levando em consideração o desgaste do servidor tb ( em requisições e respostas ). Não sei se há outras soluções... mas toda solução é muito bem vinda. Obs: Servidor está na digital ocean e o app será construido com cordova. Muito obrigado!!
  15. GuilhermeAw

    Cordova + Crosswalk

    criei um projeto cordova normalmente: cordova create myApp com.myapp myApp depois entrei na pasta do projeto cd myApp adicionei a plataforma: cordova platform add android e adicionei o plugin do crosswalk cordova plugin add cordova-plugin-crosswalk-webview se eu importar o projeto no AndroidStudio ele me da um erro de pacote. Pesquisei e esse erro é porque precisa buildar o projeto para o plugin do crosswalk baixar algumas classes etc... Dei o build: cordova build android --release Os erros sumiram, mas ele não compila da vários erros de classes duplicadas... C:\Users\GuilhermeAw\Desktop\teste\platforms\android\build\generated\source\r\x86\release\org\xwalk\core\R.java Error:(9, 14) java: duplicate class: org.xwalk.core.R C:\Users\GuilhermeAw\Desktop\teste\platforms\android\build\generated\source\r\x86\release\com\teste\R.java Error:(10, 14) java: duplicate class: com.teste.R Se eu pago as classes aparece mais erros... Error:Android Dex: [android] Unable to execute DX Error:Android Dex: [android] com.android.dex.DexException: Multiple dex files define Lorg/apache/cordova/AuthenticationToken; Error:Android Dex: [android] at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:591) Error:Android Dex: [android] at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:546) Error:Android Dex: [android] at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:528) Error:Android Dex: [android] at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164) Error:Android Dex: [android] at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) Error:Android Dex: [android] at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504) Error:Android Dex: [android] at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334) Error:Android Dex: [android] at com.android.dx.command.dexer.Main.run(Main.java:277) Error:Android Dex: [android] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) Error:Android Dex: [android] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) Error:Android Dex: [android] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) Error:Android Dex: [android] at java.lang.reflect.Method.invoke(Method.java:497) Error:Android Dex: [android] at org.jetbrains.android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.java:188) Error:Android Dex: [android] at org.jetbrains.android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.java:336) Eu acredito que esteja faltando alguma coisa, mas como é a primeira vez que trabalho com o crosswalk não sei lidar com esses erros, alguém sabe o que pode ser?
  16. Eu sou iniciante me programação e estou criando uma aplicação android usando o Intel xdk e Cordova , eu gostaria de saber como posso abrir a câmera do dispositivo ao tocar um botão, eu li algo sobre: function takepicture() { intel.xdk.camera.takePicture(80, true, "jpg"); } mas não entendi como usar, se alguem puder me ajudar eu ficaria muito grato
×

Important Information

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