2016-04-04 2 views
0

Я пытаюсь интегрировать определенный Java-апплет в приложение-приложение. Более того, я хотел бы запустить его в диалоге (с использованием пользовательского интерфейса).Как использовать java-апплет в responsejs

У меня есть функция рендеринга, которая работает, и когда я нажимаю на определенную кнопку, отображается диалоговое окно. Код относительно апплета участие в диалоге моего возвращения() функции показано здесь:

<Dialog 
     ref="dialogAction" 
     title={this.state.dialogTitle} 
     actions={customAction} 
     actionFocus="submit" 
     modal={this.state.modal} 
     autoDetectWindowHeight={true} 
     autoScrollBodyContent={true} 
     contentStyle={styles.dialogMarvin}> 

     <applet 
     type="application/x-java-applet;version=1.6" 
     width="540" 
     height="480" 
     codebase="./marvin" 
     archive="appletlaunch.jar" 
     code="chemaxon/marvin/applet/JMSketchLaunch" 
     legacy_lifecycle={true} 
     java-vm-args="-Djnlp.packEnabled=true -Xmx512m" 
     codebase_lookup={false}> 

     </applet> 

     </Dialog> 

Когда я запускаю этот код, диалоговое окно показано, как ожидается, и в первый раз, светлячок спрашивают меня, если я хочу активируйте java (сообщив, что он работает до сих пор). Смотрите следующий снимок: applet ready to be loaded, but allowance asked

Но как только разрешено java, ничего не отображается (только пустым, посмотрите следующее изображение: once allowance granted). Если я проверю код в браузере, некоторые свойства отсутствуют. Вместо исходного кода поместить его у меня есть этот один (недостающий архив, кодовую и некоторые другие): отображаются

<applet 
    type="application/x-java-applet;version=1.6" 
    data-reactid=".0.$=12:0.0.2.2.0.$=10.0.1.0" 
    height="480" 
    width="540"> 
</applet> 

Некоторые inforamtions, но я их не понимаю до сих пор.

Неужели вы пытаетесь намотать апплет в своих реакциях? У вас есть несколько советов? Я делаю что-то неправильно?

+0

Не используйте Java-апплеты. – SLaks

+0

@SLaks, вы здесь не очень актуальны, но спасибо. Несмотря на это, я должен использовать сторонний Java-апплет для приложения, которое я разрабатываю ... любая помощь будет благодарна. В будущем я буду использовать только эквивалент javascript, который заменит апплет, но ждет зрелую версию со всеми необходимыми мне параметрами. – FLCcrakers

ответ

0

Реакция придирчива, когда дело доходит до разрешения случайных имен атрибутов. Поэтому вместо того, чтобы вводить applet с помощью JSX, просто установите вместо этого внутреннийHTML компонента. Чтобы сделать это, используйте РЕАКТ dangerouslySetInnerHTML:

var dangerousMarkup = { 
    __html: '<applet.... ' // the whole markup string you want to inject 
}; 

<div dangerouslySetInnerHTML={dangerousMarkup}></div> 

Это в основном так же, как установка domNode.innerHTML = '<applet...' с ванилью JavaScript, и Реагировать просто давайте сырые разметки проходят без изменений.

Документы: https://facebook.github.io/react/tips/dangerously-set-inner-html.html

+0

Да, это работает, но только вне диалогового окна (из пользовательского интерфейса материала). Если я поместил его в диалоговое окно, оно все равно пустое. Я не понимаю, почему ... Я могу справиться с этим без диалогового окна, но было бы лучше. Я продолжу работать над этим. – FLCcrakers