Чтобы метатеги работали, они должны быть на HTML-странице ссылки до запуска любого javascript.Некоторые платформы могут запускать некоторые javascript на внешнем сайте при генерации предварительного просмотра ссылки, но в целом , метатеги должны быть на html-странице до угловой загрузки, поэтому код на стороне клиента на данной странице не будет работать для этой цели.
Для моих целей я обнаружил, что наиболее эффективным способом достижения этого эффекта является предоставление разделяемых ссылок отдельно от углового проекта, как перенаправления HTML.
Например, вы можете сделать так, чтобы ваши общедоступные ссылки действительно ссылались на ваш API, а API передавал данные при перенаправлении.Вместо example.com/article?id=2&exampleParam=123
у вас будет api.example.com/share?id=2&exampleParam=123
.Конечная точка API /share
вернет HTML-файл с правильными метатегами, а также метатег, который будет перенаправлять в ваше приложение: <meta http-equiv="refresh" content="0; URL='https://example.com/article?id=2&shareableParam=123'" />
Вам просто нужно, чтобы ваша общедоступная ссылка привела кHTML-страница с правильными метатегами с перенаправлением на фактический URL-адрес вашего приложения.Насколько мне известно, не существует более простого способа сделать это, учитывая, что мета-теги должны присутствовать до запуска angular.Рендеринг угловых проектов на стороне сервера - это совершенно другая игра, но я предполагаю, что большинство людей, сталкивающихся с этой проблемой, будут использовать только рендеринг на стороне клиента.