如何知道玩家是否在社交应用上分享了我的链接?

时间:2018-07-11 17:49:37

标签: c# unity3d social-networking

我正在使用Unity3d和C#脚本/代码。我刚刚开始使用Yasirkula的本机共享插件。

这是我的代码的一部分:

NativeShare().SetSubject( "Check out this game!" ).SetText( "Link to my app here" ).Share();

当我到达此行时,用户会看到一个共享菜单,并且他可以选择自己想要的任何共享应用程序。如何确保用户实际上在Whatsapp,FaceBook,Twiter上共享了链接,而不使用剪贴板或其他任何应用程序?我只想奖励真实分享的用户。

4 个答案:

答案 0 :(得分:4)

Native Share可以选择您要与之共享的应用程序,但仅限Android:

source("https://raw.githubusercontent.com/rnorouzian/i/master/ii.r") # source the function

f <- function(x, n.pred = 5, N = 100, conf.level = .95){ 
  ci <- R2.ci(R2 = x, n.pred = n.pred, N = N, conf.level = conf.level)  # The objective function
  ci$upper - ci$lower
}

curve(f, panel.f = abline(v = .6, h = f(.6), col = 2, lty = c(2, 1)))  # curve the function

uniroot(function(x) f(.6) - f(x), c(0, 1))[[1]]  # find the requested 'x' value

`Error: f() values at end points not of opposite sign`

这样,您可以为要允许用户共享的每个应用程序创建一个按钮,以防止与非社交应用程序共享。我认为这是您所想要的最接近的东西。

不幸的是,我不知道iOS和“取消/返回”按钮是否有任何解决方法。

答案 1 :(得分:3)

许多营销电子邮件都使用此技术来跟踪电子邮件状态:

原始想法是在将被共享的URL中放置一个参数,并跟踪何时使用该URL访问您的应用程序。

参数可以是带有有用信息的加密随机数。当您收到带有该URL的请求时,您便会解密随机数,并使用此数据来标识共享链接的用户。

Here,您可以研究如何将此模式应用于跟踪电子邮件状态(打开,阅读等)

答案 2 :(得分:1)

一个开箱即用的想法:

转动

NativeShare().SetSubject( "Check out this game!" ).SetText( "Link to my app here" ).Share();

进入

NativeShare().SetSubject( "Check out this game!" ).SetText( "Link to my app here #trackablehashtag" ).Share();

然后,您可以通过搜索主题标签来搜寻社交内容,或者使用内置的社交媒体营销工具来跟踪趋势。尽管这可能不是解决问题的完整方法,但是它可能带来一些额外的好处,那就是完整的解决方案可能无法自行创建。

答案 3 :(得分:0)

为什么不看看Facebook Unity API?

  

https://developers.facebook.com/docs/unity

有一种名为FB.FeedShare

的方法
  

https://developers.facebook.com/docs/unity/reference/current/FB.FeedShare

FB.FeedShare(
    link: new Uri("Link"),
    linkName: "Oh la la",
    callback: Callback
);

还有一个叫做FB.ShareLink

  

https://developers.facebook.com/docs/unity/reference/current/FB.ShareLink

FB.ShareLink(
    new Uri("Link"),
    callback: Callback
);

查看这两个IShareResult的回调参数,它同时具有bool Cancelledstring PostId

所以您可以这样做

void Callback(IShareResult result)
{
    if (result.Cancelled || result.PostId == null)
    {
        Debug.Log("No reward for you");
    }            
}

我可以说,因为我自己还没有测试过。