2

我注意到 Kik 分享按钮有一个 data-url 属性,文档甚至有一个支持 URL 的分享按钮构建器,但是在我的测试中,data-url 属性被忽略了,而是始终共享当前 URL。

这是一个例子:

<a class="kik-button kik-color-lg" 
   data-url="http://example.com/something" 
   data-title="Something" 
   data-description="Something" 
   data-pic="http://example.com/example.png">
</a>

如果您在页面http://example.com - 按分享按钮将分享一张卡片,将您带到http://example.com而不是http://example.com/something

我还注意到在本机使用时实际上没有任何“url”项目kik.send,这让我对实际应该发送的内容感到困惑。

另一个半相关的问题是我试图隐藏非 kik 设备上的共享按钮,因此他们仍然可以像往常一样使用该网站,但是kik.enabled只有当用户第一次加载页面时才如此,一旦他们导航到另一个页面,kik.enabled突然是假的,导致分享按钮消失。为什么是这样?

(注意:在 Chrome 中使用 Kik 开发人员工具时,kik.enabled 工作得非常好,@kik devs,我真的希望开发人员工具更接近 Kik 应用程序,我已经构建了一些应用程序,通常它们在我的浏览器中工作正常使用 Kik 工具,但在 Kik 本身内部完全被破坏)

4

1 回答 1

-1

kik-share-button 脚本尝试将 的值作为data-url参数url发送到kik.send()

function setupShareButton(link) {
    link.style.display = "inline-block";
    link.setAttribute("title", "Share this on Kik!");
    link.addEventListener("click", function(event) {
        var link = this,
            data = {},
            n, m, i, h;
        n = link.getAttribute("data-title");
        if (n) {
            data.title = n
        } else {
            data.title = document.title
        }
        m = link.getAttribute("data-description");
        if (m) {
            data.text = m
        }
        i = link.getAttribute("data-pic");
        if (i) {
            data.pic = i
        }
        h = link.getAttribute("data-url");
        if (h) {
            data.url = h
        }
        kik.send(data);
        // don't follow the link normally unless a previous command threw an error
        return false
    })
}

但是kik.send()文档没有提到url参数。这可能是共享按钮脚本中的错误。无效的参数名称可能会导致发送当前页面 url 的默认行为。也许它应该是data参数的一部分:

kik.send({
  title: '...',
  text: '...',
  data: {url: '...'}
})

在这种情况下,对共享按钮脚本进行小的修改就可以产生正确的功能。

于 2015-03-16T04:32:56.663 回答