当前位置: 首页 > 知识库问答 >
问题:

Phonegap/corova社交分享插件,重复推文问题

万俟承望
2023-03-14

我正在使用社交分享插件将我的手机应用程序中的消息和图片分享到facebook和twitter,
如果分享成功,应用程序将显示“分享成功”警报,如果插件显示任何错误消息,则显示“分享已取消”
对于facebook来说,这就像一种魅力,但在twitter中却有一个问题。它适用于所有场景,但重复推特(重复推特的人不止一次分享同一条推特)除外。当插件的所有条件都满足(互联网连接、用户身份验证、有效消息)时,这两个警报都会被触发,但手机中的推特应用程序稍后会抛出“重复推特”错误。这里的任何人都请帮助我在触发警报之前找到错误消息。

function shareViaTwitter(id, message, image, url) {
    canShareViaTwitter();
    message = message.replace(/<br *\/?>/gi,'\n');

var successmessage  = window.localStorage.getItem('canshareTwitsuccess');
var errormessage    = window.localStorage.getItem('canshareTwiterror');

if(errormessage != '' && errormessage != 'null' && errormessage != null)
{
    navigator.app.loadUrl('https://play.google.com/store/apps/details?id=com.twitter.android&hl=en', { openExternal:true });
    reloadPage();
}
else
{   
    if(navigator.onLine) {
        var isAndroid = /android/i.test(navigator.userAgent.toLowerCase());

        if(isAndroid) {
            message = (message) ? message : null;
            image = (image) ? image : null;
            url = (url) ? url : null;

            window.plugins.socialsharing.shareViaTwitter(message, image, url, function(msg){}, function(msg){});
            $("#sharingText").html("Shared Successfully");
            $('#sharing-sucess-trigger').trigger('click');
        }
    } else {
        $("#sharingText").html("Shared Failed! \nNo Network Connection");
        $('#sharing-sucess-trigger').trigger('click');
    }
    reloadPage();
}
}

function canShareViaFacebook()
{
    //alert("canshare")
    window.plugins.socialsharing.canShareVia('com.facebook.katana', 'msg', null, null, null, function(fbsuccess){window.localStorage.setItem("canshareFbsuccess", fbsuccess);}, function(fberror){window.localStorage.setItem("canshareFberror", fberror);});
}

function canShareViaTwitter()
{
    //alert("canshare")
    window.plugins.socialsharing.canShareVia('twitter', 'msg', null, null, null, function(twitsuccess){window.localStorage.setItem("canshareTwitsuccess", twitsuccess);}, function(twiterror){window.localStorage.setItem("canshareTwiterror", twiterror);});
}

共有1个答案

公良凯
2023-03-14

这个代码真的很奇怪。如果您与以下人员分享推文:

socialsharing.shareViaTwitter(message, file, url, successCallback, errorCallback)

并且您想告诉用户tweet失败了,那么您可以使用errorCallback来提醒用户tweet失败了。

function errorCallback(msg){
    alert(msg);
}

--附加代码--

function shareViaTwitter(id, message, image, url) {
    message = message.replace(/<br *\/?>/gi,'\n');
    canShareViaTwitter(function(){
        if(navigator.onLine) {
            var isAndroid = /android/i.test(navigator.userAgent.toLowerCase());

            if(isAndroid) {
                message = (message) ? message : null;
                image = (image) ? image : null;
                url = (url) ? url : null;

                window.plugins.socialsharing.shareViaTwitter(message, image, url, function(msg){}, function(msg){});
                $("#sharingText").html("Shared Successfully");
                $('#sharing-sucess-trigger').trigger('click');
            }
        }
        else {
            $("#sharingText").html("Shared Failed! \nNo Network Connection");
            $('#sharing-sucess-trigger').trigger('click');
        }
        //why?
        reloadPage();
    },
    function(){
        navigator.app.loadUrl('https://play.google.com/store/apps/details?id=com.twitter.android&hl=en', { openExternal:true });
        reloadPage();
    });
}
function canShareViaTwitter(successCallback, errorCallback)
{
    //alert("canshare")
    window.plugins.socialsharing.canShareVia('twitter', 'msg', null, null, null, function(twitsuccess){window.localStorage.setItem("canshareTwitsuccess", twitsuccess);successCallback();}, function(twiterror){window.localStorage.setItem("canshareTwiterror", twiterror);errorCallback()});
}
 类似资料:
  • 本篇文章介绍如何使用x5提供的插件实现通用的分享功能。 在x5中提供了两类分享的插件,一种是微信、QQ、微博这类特定客户端的分享插件,开发者如有这方面需求可参考作者另一篇文章:<微信、微博、QQ分享开发教程>(http://doc.wex5.com/wechat-weibo-qq-share/);另外一种是通用的分享功能,本篇文章介绍第二种插件的使用教程。 在x5中提供了一个通用的分享插件,开发者

  • 问题内容: 我正在尝试在AngularJS应用程序中使用AddThis javascript Social插件,但是当我用ng- view加载部分插件时,它不会更新addthis插件图标。如果我刷新页面,则不会(ctrl + F5)。我认为AngularJs通过Ajax加载了部分视图,在这种情况下,addthis不显示加载页面的社交图标。 这是索引代码: 这是在section标签中加载的局部视图,

  • 我有一个网站,使用twitter,facebook或google登录系统。我使用oAuth,这是我的代码。 配置 控制器 问题是我如何知道用户使用哪一种社交媒体登录系统?

  • 大家好,我叫炎炽枫,工作五年。一看标题有些同行可能就想问,怎么拿到面试机会的,毕竟这么多外包。 答案是官网申请,百度输入交通银行招聘官网。一开始我也搜一些面试经验,结果都是校招的,社招的经验几乎没有,本以为会考一些综合知识,结果不是。 我面试的是前端岗 题型分单选20题40,多选15题30分,简答题3题6分论述题一题12分 选择题(css clientwidth, js,promise,this,

  • 分享能力接入说明 文件分享能力目前只对企业开发者开放,不对个人开发者开放。若您的企业需要接入文件分享能力,请按照以下邮件格式发送申请邮件到邮箱:netdisk-union@baidu.com” 邮件格式 标题:企业名称+申请接入文件分享能力 一、企业信息: 企业名称 企业营业执照 二、产品信息: 产品名称 产品用户规模 产品DAU 文件分享能力在产品内的主要应用场景 产品内分享传播的主要文件类型

  • 我在自己的GitHub存储库中有一个Phonegap/Cordova插件,我想将此插件添加到GitHub上的Phonegap插件存储库中https://github.com/phonegap/phonegap-plugins.我怎样才能做到这一点? 编辑 Phonegap插件库说: 我们不想再用代码“搅乱”这份回购协议。作者应该在自己的repos中维护代码,只需在自述中放置一个指针。本回购协议中的