短信未使用 Branch.io 和国际电话输入发送至国际号码

SMS not sending to intl numbers using Branch.io and intl-tel-input

我的表格只会发送到 10 位数的美国号码。选择国家/地区后,我想发送到国际号码。查看 Intl-Tel-Input 文档后,可能需要此代码,但我没有任何运气:myInput.val(myInput.intlTelInput("getNumber"));

这里是 Branch.io text me the app 文档,主要是下面的代码以及使用 phoneSMS.

的更新

如何使用 branch.io 和 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>

国际电话输入插件:

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

来自 Branch.io 的 Alex:Branch 确实支持国际 phone 号码和 text-me-the-app 功能,我们希望有一个像 Intl-Tel 这样的国家/地区选择器-即将在某个时候集成输入。

目前,您需要手动附加国家代码 +。我们的文档 here 中有一节对此进行了描述(有点隐瞒...抱歉!)。基本上你需要像这样用 var phone = "+91" + form.phone.value; 更新那个片段:

<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>

理论上,您应该能够将 Intl-Tel-Input 的输出输入该变量。

如果你真的成功了,请告诉我!我们很乐意将其直接整合到 SDK 中。

在号码前添加国际前缀的最简单方法是在 sendSMS() 函数中更新它以向 intlTelInput 本身询问号码 - 它为您提供国际号码而不是 var phone = form.phoneSMS.value格式。

示例:

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

如需进一步参考,请查看 intlTelInput 的 public 方法。