Я создаю расширение Chrome, которое позволяет просматривать, обновлять, создавать и удалять закладки Chrome. Я также хотел бы иметь возможность загружать и сохранять закладки пользователя через наш сервер вместо синхронизации через учетную запись google. Проблема, с которой я сталкиваюсь, заключается в том, что я не уверен, как мы будем синхронизировать эти закладки между устройствами. Поскольку Chrome bookmarks API не имеет какой-либо метод (ы) для загрузки/синхронизации дерева, я полагаю, я спасу каждую закладку/папку в массиве на сервере, таких какКак синхронизировать хромированные закладки с сервером в расширении с помощью API
[{id: "", parentId: "", index: "", title: "", url: ""}, ...]
Когда пользователь входит в свой аккаунт на новое устройство/браузер, я получаю массив закладок/папок с сервера и просматриваю их. В цикле я использовал бы Chrome.bookmarks.get с идентификатором, чтобы проверить, существует ли эта закладка, а если нет, то используйте функцию create для создания этой закладки. Проблема в том, что я не вижу в документации, чтобы указать идентификатор вновь созданной закладки/папки. Что делать, если в закладке/папке, созданной на новом устройстве/браузере, есть другой идентификатор, а затем оригинальное устройство/браузер? Затем использование функции get (для которой требуется указать идентификатор, который вы ищете) не позволит мне правильно сравнивать закладки. Есть ли другое решение для этой проблемы?
Несколько сумасшедшая идея: создать столько фиктивных закладок, сколько необходимо, пока не будет создан идентификатор созданной закладки, а затем удалите макеты. Чтобы оптимизировать этот процесс, преобразуйте дерево в плоский массив и отсортируйте его по идентификаторам. – wOxxOm
Я бы сказал, что вместо использования 'get' использовать' getTree' и сопоставления с url/title вместо id, так как вы не можете управлять этими идентификаторами. – BeardFist
Спасибо за предложения, ребята! Я закончил поиск с URL и заголовком, а затем проверил, что у них одинаковый идентификатор родителя. – CaitlinHavener