2016-05-05 6 views
0

Mein Formular wird nur an 10-stellige US-Nummern senden. Ich möchte nach der Auswahl des Landes Intl-Nummern senden. Nach einem Blick durch die Intl-Tel-Input docs, könnte dieser Code benötigt werden, aber ich habe kein Glück mit ihm: myInput.val(myInput.intlTelInput("getNumber"));SMS nicht zu Intl-Nummern senden mit Branch.io und Intl-tel-Eingang

Hier ist die Branch.io text me the app doc, die im Folgenden vor allem des Code mit dem Update ist phoneSMS zu verwenden.

Wie sende ich an intl-Nummern mit branch.io und Intl-Tel-Input?

<script type="text/javascript"> 
      (function(b,r,a,n,c,h,_,s,d,k){if(!b[n]||!b[n]._q){for(;s<_.length;)c(h,_[s++]);d=r.createElement(a);d.async=1;d.src="https://cdn.branch.io/branch-latest.min.js";k=r.getElementsByTagName(a)[0];k.parentNode.insertBefore(d,k);b[n]=h}})(window,document,"script","branch",function(b,r){b[r]=function(){b._q.push([r,arguments])}},{_q:[],_v:1},"addListener applyCode banner closeBanner creditHistory credits data deepview deepviewCta first getCode init link logout redeem referrals removeListener sendSMS setIdentity track validateCode".split(" "), 0); 
branch.init('YOUR-BRANCH-KEY'); 

      function sendSMS(form) { 
       var phone = form.phoneSMS.value; 
       var linkData = { 
        tags: [], 
        channel: 'Website', 
        feature: 'TextMeTheApp', 
        data: { 
         'foo': 'bar' 
        } 
       }; 
       var options = {}; 
       var callback = function(err, result) { 
        if (err) { 
         alert("Sorry, something went wrong."); 
        } 
        else { 
         alert("SMS sent!"); 
        } 
       }; 
       branch.sendSMS(phone, linkData, options, callback); 
       form.phone.value = ""; 
      } 
     </script> 

HTML

<form onsubmit="sendSMS(this); return false;"> 
<input type="tel" name="phoneSMS" id="phoneSMS"> 
<input type="submit"/> 
</form> 

Intl Tel Input Plugins:

<script type="text/javascript" src="{{ site.baseurl }}js/intlTelInput.js"></script> 
    <script> 
     $("#phoneSMS").intlTelInput({ 
     utilsScript: "{{ site.baseurl }}/js/utils.js" 
     }); 
    </script> 

Antwort

1

Der einfachste Weg, Sie erreichen könnte sich die Zahl der internationalen Präfix vorangestellt ist statt var phone = form.phoneSMS.value in Ihrer sendSMS() Funktion, sie aktualisieren die intlTelInput selbst für die Nummer fragen - es Ihnen internationalen Format gibt.

Beispiel:

var phone = $('#phoneSMS').intlTelInput("getNumber") 

Für weitere Referenz, überprüft intlTelInput öffentliche Methoden aus.

2

Alex von Branch.io hier: Branche unterstützt internationale Telefonnummern mit dem Text-me-the-App-Funktion und wir hoffen, dass wir bald einen Länderselektor wie Intl-Tel-Input integrieren können.

Für jetzt müssen Sie die Ländervorwahl und+ manuell anhängen. Wir haben einen Abschnitt, der dies in unserer Dokumentation beschreibt here (es ist ein wenig begraben ... Entschuldigung!). Grundsätzlich müssen Sie diese Schnipsel aktualisieren mit var phone = "+91" + form.phone.value; wie so:

<script type="text/javascript"> 
      (function(b,r,a,n,c,h,_,s,d,k){if(!b[n]||!b[n]._q){for(;s<_.length;)c(h,_[s++]);d=r.createElement(a);d.async=1;d.src="https://cdn.branch.io/branch-latest.min.js";k=r.getElementsByTagName(a)[0];k.parentNode.insertBefore(d,k);b[n]=h}})(window,document,"script","branch",function(b,r){b[r]=function(){b._q.push([r,arguments])}},{_q:[],_v:1},"addListener applyCode banner closeBanner creditHistory credits data deepview deepviewCta first getCode init link logout redeem referrals removeListener sendSMS setIdentity track validateCode".split(" "), 0); 
branch.init('YOUR-BRANCH-KEY'); 

      function sendSMS(form) { 
       var phone = "+91" + form.phone.value; 
       var linkData = { 
        tags: [], 
        channel: 'Website', 
        feature: 'TextMeTheApp', 
        data: { 
         'foo': 'bar' 
        } 
       }; 
       var options = {}; 
       var callback = function(err, result) { 
        if (err) { 
         alert("Sorry, something went wrong."); 
        } 
        else { 
         alert("SMS sent!"); 
        } 
       }; 
       branch.sendSMS(phone, linkData, options, callback); 
       form.phone.value = ""; 
      } 
     </script> 

In der Theorie sollten Sie in der Lage sein, die Ausgabe von Intl-Tel-Eingang in diese Variable zu füttern.

Wenn Sie dies funktioniert, lass es mich wissen! Wir würden es gerne direkt in das SDK integrieren.