2015-11-23 9 views
3

Кто-нибудь пытался внедрить значки доверенного магазина Google на отдельных страницах приложения?доверенные магазины google в приложении для одного приложения

Мой значок появляется в первый раз, когда я обращаюсь к странице, но когда я иду на другую страницу, например страницу с подробным описанием продукта, значок исчезает.

Я не нашел ссылку на Google об этом.

ответ

1

Такая же проблема здесь. Я прочитал сценарий, который был вставлен в Google Trusted Stores, и они не предоставляют никакого общедоступного метода для повторной инициализации сценария или метода destroy, чтобы вернуть изменения, которые они уже внесли в ваш документ.

В качестве грязного последнего средства вы можете вручную удалить значок и предыдущий скрипт, а затем снова включить скрипт для повторного запуска. Здесь есть небольшая оговорка ... при первом запуске скрипта создается свойство только для чтения в объекте window, window.GoogleTrustedStore. Сценарий не будет запускаться во второй раз, если это свойство определено.

Вы можете запретить настройку этого свойства как только для чтения, если вы определяете его до выполнения скрипта Google. Вот пример всего этого:

// Define object as configurable before Google Trusted Stores locks it. 
// Need to be able to overwrite this property later to re-initiliaze the script. 
Object.defineProperty(window, 'GoogleTrustedStore', {configurable: true}); 

var gts = window.gts || []; 
gts.push(["locale", "en_US"]); 
// ... finish defining your gts options 

// Insert the GTS script to run it: 
(function() { 
    const script = document.createElement("script"); 
    script.src = "//www.googlecommerce.com/trustedstores/api/js"; 
    const s = document.getElementsByTagName("script")[0]; 
    s.parentNode.insertBefore(script, s); 
})(); 

// Using timeout for demonstration purposes 
setTimeout(function(){ 
    // Dirty example of destroying the existing badge 
    var dirtyDestroy = document.querySelectorAll('#gts-comm, #gts-c, script[src^="http://www.googlecommerce.com"], script[src^="https://www.googlecommerce.com"], script[src^="http://www.gstatic.com/trustedstores"], script[src^="https://www.gstatic.com/trustedstores"]'); 
    [].slice.call(dirtyDestroy,0).forEach(function(el){el.parentNode.removeChild(el)}); 

    // Reset window.GoogleTrustedStore 
    Object.defineProperty(window, 'GoogleTrustedStore', {value: undefined}); 

    // Insert the script again to re-run it: 
    (function() { 
     const script = document.createElement("script"); 
     script.src = "//www.googlecommerce.com/trustedstores/api/js"; 
     const s = document.getElementsByTagName("script")[0]; 
     s.parentNode.insertBefore(script, s); 
    })(); 
}, 5000); 
+1

Wow. Просто ... Спасибо. –