3

我正在尝试在混合应用程序中添加一个谷歌登录按钮。它在按钮时正确呈现

<div class="g-signin2" data-onsuccess="onSignIn"></div>

在初始页面中,但是当页面不是第一个加载时(顺便说一句,页面是通过 ajax 加载的),按钮无法呈现。有关更多信息,我正在使用Framework7,但我认为问题与框架无关,而是与我的错误逻辑有关。我正在按照谷歌开发人员的说明进行操作。

4

3 回答 3

4

您可以onPageInit按照Framework7 文档中的说明使用:

myApp.onPageInit(pageName, function(page) {
  var script = document.createElement('script');
  script.src = 'https://apis.google.com/js/platform.js';
  document.body.appendChild(script);
});
于 2015-11-17T12:53:38.573 回答
4

当动态加载 div 元素时它不起作用,因为 Google 登录脚本g-signin2在执行时查找带有 -class 的标签,因为它尚未加载到 DOM 树中,所以它找不到。

相反,您可以gapi.signin2.render在 AJAX 调用完成后使用该函数呈现按钮。例如,如果您的占位符标记具有 id div_tag_id,在 JavaScript 中:

gapi.signin2.render("div_tag_id", {
    "scope": "profile email openid",
    "width": 200,
    "height": 40,
    "longtitle": true,
    "theme": "dark",
    "onsuccess": function (googleUser) {
        // Called when the user signs in
    },
    "onfailure": function (e) {
        console.warn("Google Sign-In failure: " + e.error);
    }
});

于 2017-06-01T10:01:19.847 回答
0

在隐身模式下使用谷歌浏览器,你会得到它的工作原理

于 2018-04-28T20:10:58.917 回答