Автоматически открывающаяся боковая панель задач - PullRequest
0 голосов
/ 02 июня 2019

Можно ли автоматически открывать плагины в режиме разработчика?

Согласно документации

Панель, которую вы открываете автоматически, открывается , только если надстройка уже установлена ​​на устройстве пользователя . Если пользователь делает не имеют надстройки, установленной при открытии документа, автооткрытие Функция не будет работать, и настройки будут игнорироваться. Если вы также требует распространения надстройки вместе с документом, который необходимо установить свойство видимости до 1; это можно сделать только с помощью OpenXML, пример приведен ниже в этой статье.

В частности, файл, который я пытаюсь открыть автоматически, основан на office-generator с одной модификацией:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <we:webextension xmlns:we="http://schemas.microsoft.com/office/webextensions/webextension/2010/11" id="{acbc717b-5139-428a-9089-e9d6d7d8affc}">
  <we:reference id="acbc717b-5139-428a-9089-e9d6d7d8affc" version="1.0.0.0" store="developer" storeType="Registry"/>
  <we:alternateReferences/>

  <we:properties>
    <we:property name="Office.AutoShowTaskpaneWithDocument" value="true"/>
  </we:properties>

  <we:bindings/>
  <we:snapshot xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"/>
</we:webextension>

с добавлением <we:property name="Office.AutoShowTaskpaneWithDocument" value="true"/>

и изменив manifest.xml следующим образом:

<Action xsi:type="ShowTaskpane">
  <TaskpaneId>Office.AutoShowTaskpaneWithDocument</TaskpaneId>
  <SourceLocation resid="Taskpane.Url"/>
</Action>

Проблема:

Ожидается, что будет одна панель задач, которая будет открыта автоматически.

В области задач, которая была открыта автоматически, есть ошибка, которая гласит, что we can't find the task pane to open. С другой стороны, нажатие на ленту позволяет открывать панель задач, как обычно, рядом со сломанной автоматически открывающейся панелью задач, как показано на рисунке ниже:

enter image description here

1 Ответ

0 голосов
/ 07 июня 2019

Где-то в Microsoft Word есть скрытое состояние, которое сохраняется даже после перезапуска. Чтобы воспроизвести ошибку, вам понадобится новый компьютер .

Позвольте мне объяснить, как я заработал после ... 1 недели.

Первый запуск с генератором office-js.

yo office, для которого я выбрал машинопись.

enter image description here

Изменить файл src / taskpane / taskpane.ts следующим образом:

export async function run() {
  return Word.run(async context => {
    /**
     * Insert your Word code here
     */

    // insert a paragraph at the end of the document.
    const paragraph = context.document.body.insertParagraph("Hello World", Word.InsertLocation.end);

    // change the paragraph color to blue.
    paragraph.font.color = "blue";

    // Add these two lines
    Office.context.document.settings.set("Office.AutoShowTaskpaneWithDocument", true);
    Office.context.document.settings.saveAsync();
    // Technically should wait, but doesn't matter.

    await context.sync();
  });

Изменить файл manifest.xml следующим образом: Заменить ButtonId1 на Office.AutoShowTaskpaneWithDocument

<Action xsi:type="ShowTaskpane">
  <TaskpaneId>Office.AutoShowTaskpaneWithDocument</TaskpaneId>
  <SourceLocation resid="Taskpane.Url"/>
</Action>

Запустите проект как обычно. npm run start

Нажмите кнопку запуска, чтобы запустить автоматическое открытие файла.

enter image description here

Сохраните файл где-нибудь.

Повторно откройте его, чтобы убедиться, что оно работает. Как ни странно, он создал идентичные панели задач, когда я нажал на кнопку показать панель задач. Это ошибка, но у меня работает. В конце концов, для целей тестирования.

enter image description here

Чтобы доказать, что проблема файла действительно в скрытом состоянии: Клонируйте репозиторий на новом компьютере , npm run start, скопируйте файл поверх.

Запустите файл, и вы получите ту же проблему, что и в моем исходном сообщении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...