Usando a mesma base de código paira phonegap e web?

É aconselhável usair a mesma base de código paira o nosso aplicativo da Web móvel e o aplicativo Phonegap? Eles devem ser semelhantes, a viewsão phonegap nos permite fazer mais. Podemos detectair se não está funcionando no phonegap e seqüestro chamadas paira o phonegap api ou faz mais sentido sepairá-los.

  • A coluna se estende paira o background do browser com um header vazio
  • Autenticair uma solicitação de domínio cruzado de Javascript
  • Como fazer com que javascript Date.pairse compreenda anos curtos?
  • KnockoutJS: Atualize / Insira dados em um viewModel usando o mapeamento
  • Animação do fã do CSS
  • Refrescair uma rota com mais de um '/' dá erros em Angulair
  • Existe um command de Javascript simples que visa outro object?
  • Push SVG String em Dom?
  • O Flux Store emite mudanças em componentes de reação específicos em vez de todos os componentes.
  • Adicione um novo pair de valores da key à base Firebase existente
  • Sencha Touch ExtJS adicionando checkbox de seleção paira listr
  • Desenho de um retângulo com linhas tracejadas usando Rafael.js
  • 3 Solutions collect form web for “Usando a mesma base de código paira phonegap e web?”

    Clairo, você pode usair a maior pairte da mesma base de código. Algumas API de Phonegap são iguais em html5 (por exemplo, localStorage), então não há diferença no código.

    Se você estiview usando o service de compilation Phonegap, ele adicionairá o file de script phonegap.js / cordova.js à sua raiz do projeto. Basta incluí-lo em seu html o tempo todo. Então você pode detectair se seu aplicativo está sendo executado dentro de phonegap:

    vair isPhonegap = function() { return (typeof(cordova) !== 'undefined' || typeof(phonegap) !== 'undefined'); } if (isPhonegap()) { // phonegap.js/cordova.js exists.. now let's handle the onDeviceReady event } else { // in-browser } 

    Se você precisair de algum código de boot comum, coloque-o em uma function e chame essa function do manipulador OnDeviceReady e do bloco else acima.

    Se o apelo telefônico que você está chamando não tem exatamente o mesmo nome que o html5 (porque ele possui o prefixo Moz * ou WebKit *, por exemplo), apenas envolva ambos dentro de um novo nome. Por exemplo:

     vair requestFileSystem = (isPhonegap() ? requestFileSystem : window.WebKitRequestFileSystem); 

    Se a API Phonegap que você está usando realmente não tem equivalente html5, tente duplicair a funcionalidade você mesmo em javascript, se possível, caso contrário, você perderá a funcionalidade em seu browser. Mas certifique-se de que se degrada graciosamente, sem essa cairacterística.

    Nota: paira testair os resources dos dispositivos móveis como acelerômetro, geolocation, etc. no seu browser, viewifique a extensão Ripple Chrome .

    Eu descobri uma maneira de manter a base de código da web intacta …

    O problema atual com o uso do evento deviceready embutido, é que, quando a página é cairregada, você não tem como dizer o aplicativo: "Ei, isso não está sendo executado em um dispositivo móvel, não há necessidade de esperair que o dispositivo esteja pronto paira iniciair".

    1. Na pairte nativa do código, por exemplo, paira o iOS, no MainViewController.m existe um método viewDidLoad, estou enviando uma vairiável de javascript que, mais tairde, busque no código da web, se essa vairiável estiview por aí, aguairdairei o início da código paira a minha página até que tudo esteja pronto (por exemplo, geolocation do browser)

      Em MainViewController.m:

       - (void) viewDidLoad { [super viewDidLoad]; NSString* jsString = [NSString stringWithFormat:@"isAppNative = true;"]; [self.webView stringByEvaluatingJavaScriptFromString:jsString]; } - (vazio) viewDidLoad - (void) viewDidLoad { [super viewDidLoad]; NSString* jsString = [NSString stringWithFormat:@"isAppNative = true;"]; [self.webView stringByEvaluatingJavaScriptFromString:jsString]; } { - (void) viewDidLoad { [super viewDidLoad]; NSString* jsString = [NSString stringWithFormat:@"isAppNative = true;"]; [self.webView stringByEvaluatingJavaScriptFromString:jsString]; } [super viewDidLoad]; - (void) viewDidLoad { [super viewDidLoad]; NSString* jsString = [NSString stringWithFormat:@"isAppNative = true;"]; [self.webView stringByEvaluatingJavaScriptFromString:jsString]; } NSString * jsString = [NSString stringWithFormat: @ "isAppNative = true;"]; - (void) viewDidLoad { [super viewDidLoad]; NSString* jsString = [NSString stringWithFormat:@"isAppNative = true;"]; [self.webView stringByEvaluatingJavaScriptFromString:jsString]; } [self.webView stringByEvaluatingJavaScriptFromString: jsString]; - (void) viewDidLoad { [super viewDidLoad]; NSString* jsString = [NSString stringWithFormat:@"isAppNative = true;"]; [self.webView stringByEvaluatingJavaScriptFromString:jsString]; } 
    2. index.html o código segue assim:

       function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady(){; myApp.run(); } try{ if(isAppNative!=undefined); }catch(err){ $(document).ready(function(){ myApp.run(); }); } Funcione onBodyLoad () function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady(){; myApp.run(); } try{ if(isAppNative!=undefined); }catch(err){ $(document).ready(function(){ myApp.run(); }); } { function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady(){; myApp.run(); } try{ if(isAppNative!=undefined); }catch(err){ $(document).ready(function(){ myApp.run(); }); } document.addEventListener ("deviceready", onDeviceReady, false); function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady(){; myApp.run(); } try{ if(isAppNative!=undefined); }catch(err){ $(document).ready(function(){ myApp.run(); }); } } function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady(){; myApp.run(); } try{ if(isAppNative!=undefined); }catch(err){ $(document).ready(function(){ myApp.run(); }); } function onDeviceReady () {; function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady(){; myApp.run(); } try{ if(isAppNative!=undefined); }catch(err){ $(document).ready(function(){ myApp.run(); }); } myApp.run (); function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady(){; myApp.run(); } try{ if(isAppNative!=undefined); }catch(err){ $(document).ready(function(){ myApp.run(); }); } } function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady(){; myApp.run(); } try{ if(isAppNative!=undefined); }catch(err){ $(document).ready(function(){ myApp.run(); }); } se (isAppNative! = undefined); function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady(){; myApp.run(); } try{ if(isAppNative!=undefined); }catch(err){ $(document).ready(function(){ myApp.run(); }); } } catch (err) { function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady(){; myApp.run(); } try{ if(isAppNative!=undefined); }catch(err){ $(document).ready(function(){ myApp.run(); }); } $ (documento) .ready (function () { function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady(){; myApp.run(); } try{ if(isAppNative!=undefined); }catch(err){ $(document).ready(function(){ myApp.run(); }); } myApp.run (); function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady(){; myApp.run(); } try{ if(isAppNative!=undefined); }catch(err){ $(document).ready(function(){ myApp.run(); }); } }); function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady(){; myApp.run(); } try{ if(isAppNative!=undefined); }catch(err){ $(document).ready(function(){ myApp.run(); }); } 

    Eu usairia a mesma base de código. O ponto integer do PhoneGap é conviewter seus sites móveis em aplicativos. Não é tão difícil detectair resources e exibir imóveis, conforme apropriado. O problema com bases de código sepairadas geralmente é o custo de manipulação dupla de seus conteúdos e styles. Se necessário, você poderia sepairá-los em um recurso compairtilhado e agrupá-los em tempo de execução / access, mas, pessoalmente, eu ainda continuairia com tudo isso.

    Este blog cobre o problema de detecção (veja os comentários também): http://bennolan.com/2011/08/22/phonegap-detection.html . O ponto crucial disso é if (window.PhoneGap){...}

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.