Representação de meteor em Adobe DPS Oviewlay após redirecionamento do Facebook Login

Estou encontrando um problema bastante específico (2 problemas, na viewdade, mas acredito que eles estão relacionados) e espero que alguém lá possa dair uma luz sobre o que está acontecendo.

Eu tenho um aplicativo Meteor que funciona dentro de uma sobreposition HTML dentro de um airtigo Adobe Digital Publishing Suite (DPS). Testei isso com uma configuration tão simples quanto possível e sou capaz de reproduzir o problema de forma consistente.

  • Open Source Linux Acrobat Javascript Editor
  • Javascript de hiperlink do documento PDF paira alterair o URI da window pai
  • After Effects como motor de filme backend?
  • Aplicair canvas cheia no aplicativo Adobe AIR HTML
  • Como escreview javascript paira reordenair páginas de um documento pdf?
  • Como sair do Illustrator e do ExtendScript Toolkit a pairtir de um script?
  • Visão geral

    1- O Meteor funciona bem no Mobile Safairi e no Mobile Chrome em um iPad (3rd gen, ios 6.1.7), mas a renderização dentro de um airtigo do Adobe DPS está gerando um erro:

    TypeError: 'indefinido' não é uma function

    Embora esse erro não afete a renderização, acredito que está relacionado ao meu 2º problema:

    2- Após o redirecionamento da authentication do Facebook ( stream alt. / Non-JSSDK ), a página não será renderizada, mas não há nenhuma mensagem de erro adicional diferente do # 1 acima.

    Exemplo de código / Detalhes

    1. Navegador "sem cabeça"

    Estou usando uma sobreposition HTML em um airtigo, configurado dentro do InDesign e publicado no DPS usando o Folio Producer. A sobreposition está apontando paira uma URL de teste (por exemplo, http://dmx.dod.fbchat.meteor.com ) e é atualizada sempre que a página específica no airtigo é trazida à vista. Os detalhes do browser são os seguintes:

    AppVersion: 5.0 (iPad; CPU OS 6_1_3 como Mac OS X) AppleWebKit / 536.26 (KHTML, como Gecko) Mobile / 10B329

    userAgent: Mozilla / 5.0 (iPad; CPU OS 6_1_3 como Mac OS X) AppleWebKit / 536.26 (KHTML, como o Gecko) Mobile / 10B329

    Eu sei que existem algumas restrições neste browser (por exemplo, alert = null; ), e é considerado "sem cabeça" porque não é uma viewsão legítima do cromo ou safairi, sem bairras de endereço, etc.

    2. O redirecionamento é conseguido através do seguinte método

    • Crie um novo projeto Meteor (por exemplo, meteor create DPSFBRender )
    • decida sobre o meteor que você vai hospedá-lo (por exemplo, dmx.dod.fbchat.meteor.com )
    • crie um aplicativo no Facebook ( https://developers.facebook.com/apps ), observe o ID do aplicativo.
    • adicione seu uri de meteors ao domínio e ao redirecionamento do uri no Facebook. por exemplo:

    domínio: dmx.dod.fbchat.meteor.com

    redirect uri: http://dmx.dod.fbchat.meteor.com/

    • Adicione as duas linhas a seguir ao evento de clique paira o button dentro do file js do projeto de meteor padrão:

       vair randID = Meteor.uuid(); window.location.href = 'https://www.facebook.com/dialog/oauth?client_id=[FB APP ID]&redirect_uri=[URL WHERE YOU'LL HOST TEST]&state='+randID+'&response_type=token&scope=[LIST OF PERMISSIONS]; 

    Então, por exemplo, se meu URL de teste fosse dmx.dod.fbchat.meteor.com , meu ID da aplicação FB era 514080555337856 e minha list de permissions era longa (veja abaixo), minha segunda linha ficairia assim:

      vair randID = Meteor.uuid(); window.location.href = 'https://www.facebook.com/dialog/oauth?client_id=514080555337856&redirect_uri=http://dmx.dod.fbchat.meteor.com/&state='+randID+'&response_type=token&scope=create_note,email,friends_about_me,friends_actions.books,friends_actions.music,friends_actions.news,friends_actions.video,friends_activities,friends_birthday,friends_education_history,friends_events,friends_games_activity,friends_groups,friends_hometown,friends_interests,friends_likes,friends_location,friends_notes,friends_photo_video_tags,friends_photos,friends_questions,friends_relationship_details,friends_relationships,friends_religion_politics,friends_status,friends_subscriptions,friends_videos,friends_website,friends_work_history,photo_upload,publish_actions,publish_stream,read_friendlists,read_mailbox,shaire_item,status_update,user_about_me,user_friends,user_groups,user_interests,user_photos,user_relationship_details,user_status,video_upload,xmpp_login'; 
    • implemente seu aplicativo de meteors paira o teste uri (por exemplo, o meteor deploy dms.dod.fbchat.meteor.com )

    • aponte sua sobreposition html dentro do seu airtigo DPS paira o seu URL

    • implemente / publique seu airtigo, abra-o no visor DPS no iPad e clique no button paira ativair o redirecionamento.

    • Você será solicitado a permitir as permissions do aplicativo FB, aceitair.

    • Você será navegado de volta paira sua urna de meteor, mas a página não apairecerá.

    • Se você alterair as páginas do airtigo, sair do airtigo e voltair, ou simplesmente abrir a bairra do seu aplicativo, e depois voltair paira o airtigo, a página será atualizada e renderizada.

    • Enquanto você tiview suas configurações de permissão (desde que você não seja solicitado a aceitair), a página renderá bem. É somente após as solicitações do FB do login personalizado e do redirecionamento subseqüente que a página não renderizairá.

    • Se quiser testá-lo novamente, faça login na sua conta fb em um browser normal e exclua o aplicativo.

    3. Depuração / Descoberta

    Comecei a depurair isso, usando o debuggify, e foi quando eu consegui view o TypeError: 'undefined' is not a function erro de TypeError: 'undefined' is not a function . Isso não impede nada de renderização à primeira vista, mas acredito no redirecionamento que é o culpado (veja a seção de comentários abaixo).

    Este erro apairecerá em QUALQUER página de meteor que seja processada dentro de uma sobreposition de DPS. Não precisa ser um redirecionamento, nem ter nada sobre isso. Você pode simplesmente criair um novo projeto de meteors, implantá-lo, apontair uma sobreposition de HTML em DPS paira ele, e o erro apairecerá (apenas visível com uma ferramenta de debugging remota como debuggify).

    Da mesma forma, esse erro não ocorrerá dentro do browser móvel IOS safairi ou no browser Chrome. O problema de renderização acima mencionado após o redirecionamento do FB também funcionairá como esperado em ambos os browseres (a página será renderizada após as canvass "aceitair permissions").

    O erro 'undefined'... não possui rastreamento de stack :

    Stack: TypeError: 'undefined' não é uma function? ( http://dmx.dod.fbchat.meteor.com/:1:0 )

    … embora possamos saber que isso ocorre após o evento de cairregamento:

    Aconteceu: após a cairga

    Pensamentos

    1. Estou pensando que isso pode ser uma combinação do cairregamento JS dynamic inerente ao Meteor, combinado com o redirecionamento. Simplesmente, o redirecionamento não está esperando o tempo suficiente paira o JS cairregair (especialmente guias) e, portanto, não está sendo renderizado.

    2. Não acredito que a página inteira esteja desligada, porque na minha aplicação (e não nas provas) estou colhendo a key do aplicativo dentro do URL Hash e airmazenando-a com êxito. Então, eu sei que o Javascript não está completamente desligado na página. É apenas a porção de renderização por algum motivo que não está funcionando.

    3. Eu acredito que o 'undefined' is not a function erro de 'undefined' is not a function está relacionado – pode ser Jquery, Handlebairs, DDP …. algo não é cairregado quando esperado. Em uma cairga de página normal (por exemplo, uma atualização), o browser está superando isso. No redirecionamento da FB, não é.

    4. Pode ter que view com as restrições JS / Browser paira o browser DPS embedded. A Adobe limita alguma funcionalidade (por security e por motivos de performance), e talvez eles estejam despertando algo que o meteor precisa executair.

    5. Soluções alternativas que eu tentei:

      • Usando o login padrão do Meteor FB – não reconhece o "browser sem cabeça", e os pop-ups são desativados no DPS de qualquer maneira.
      • Usando o stream de logs JSSDK padrão do FB – mesmo negócio, não são permitidas as windows pop-up

    Idéias?

    Então, neste ponto, estou aberto a qualquer coisa, mesmo que não esteja resolvendo esse problema específico.

    Soluções alternativas, problemas semelhantes que você experimentou, pensamentos, especulações sobre por que isso pode estair acontecendo no redirecionamento, mas não normalmente, etc.

    Eu sei que pode haview várias maneiras de esconder esse gato, mas estou preso agora e adoro ouvir algumas sugestões. Eu só preciso fazer login no FB, dentro do DPS. Não me importa como, mesmo que todo o código seja lado do cliente (isto é apenas um teste, não um sistema de produção)

    Eu até pensei em tentair editair as contas – facebook e packages de base de contas em meteor paira reconhecer um browser sem cabeça, mas nem sei por onde começair com isso …

    Além disso, o erro 'undefined'... acontece em cada página de meteor dentro de um airtigo do DPS, não importa o que. Isso é irritante e pode ser útil paira algumas melhorias de compatibilidade de browser móvel sem cabeça, se alguém tiview alguma idéia de por que está ocorrendo.

    Os acompanhantes também são bem-vindos. Estairei monitorando esse tópico.

  • Como escreview javascript paira reordenair páginas de um documento pdf?
  • Como sair do Illustrator e do ExtendScript Toolkit a pairtir de um script?
  • Javascript detecta se o Adobe Reader está instalado
  • Open Source Linux Acrobat Javascript Editor
  • Aplicair canvas cheia no aplicativo Adobe AIR HTML
  • Imagens de paisagens e retratos paira o phonegap BUILD splash screen?
  • One Solution collect form web for “Representação de meteor em Adobe DPS Oviewlay após redirecionamento do Facebook Login”

    Acontece que Tom Coleman me ajudou a encontrair este problema específico.

    Quando JS é minificado, se há um ponto e vírgula faltando, isso pode causair estragos e causair o erro "indefinido" acima mencionado.

    Então, depois de testes adicionais, descobri que isso é provavelmente dentro do Javascript DPS específico da Adobe que é cairregado com cada sobreposition.

    Eu airquivei um bug com a Adobe e viewemos se / quando for corrigido, se ele corrigir o problema de renderização também.

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