2015-08-11 11 views
8

Mobil uygulamamdan mesaj ve resimlerimi facebook ve twitter'e aktarmak için sosyal paylaşım eklentisini kullanıyorum,
Eğer paylaşım paylaşımı “Paylaşılan başarıyla” için bir uyarı görüntüleyecektir. başarıdır ve eklenti herhangi bir hata mesajı görüntülüyorsa "paylaşım iptal edildi" ifadesini görüntüler.
facebook için bir çekicilik gibi çalışır, ancak twitter orada bir sorun var.Çift tweets (aynı tweet aynı anda birden fazla kişi paylaşan kişi hariç) dışındaki tüm senaryolar için iyi çalışıyor, eklentinin tüm koşulları tetiklendiğinde ikazlar tetikleniyor (internet bağlantısı, kullanıcı kimlik doğrulaması, geçerli mesaj) ama telefondaki twitter uygulaması "yinelenen tweets" hatasını geç atıyor. Burada bulunan herkes, uyarıları tetiklemeden önce bu hata mesajını bulmam için bana yardımcı olur.Phonegap/cordova Sosyal paylaşım eklentisi, Yinelenen Tweet hesabı

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);}); 
} 
+0

o heyecan tarafından döndürülen hata Müşteri tarafından ele alınamaz başka bir çözüm millet var mı? – Vignesh

cevap

1

Bu kod gerçekten garip. Eğer bir tweet paylaşıyorsanız:

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

Ve tweet başarısız olduğunu kullanıcıya söylemek istiyorum, sen tweet başarısız olmuştu kullanıcıyı uyarmak için errorCallback kullanırsınız.

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

--additional code-- Geçenlerde http://cases.azoft.com/facebook-twitter-integration/ bu blog üzerinden bulduk

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()}); 
} 
+0

sadece oturum işleme ve benzer şeyler için kullandığımız yerel depolama bölümünü göz ardı edin, sorun "TWITTER İKİ SESSİZ İHTİYAÇ OLMAYACAK" – Geek

+0

Her iki istek de eşzamansızdır, yani canShareVia'yı çağırdığınızda hatadan beri bir hata olup olmadığını kontrol etmiyorsunuz Herhangi bir hata mesajı ayarlanmadan önce kontrol kodu çalışır. –

+1

Evet thats, ama canShareVia aslında twitter app girdikten sonra hatayı kontrol etmeyin, ve bu hata canShareVia – Geek