0

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

这是Branch.io 发短信给我的应用程序文档,它主要是下面的代码以及 using 的更新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>
4

2 回答 2

2

来自 Branch.io 的 Alex 在这里:Branch 确实支持具有 text-me-the-app 功能的国际电话号码,我们希望在不久的某个时候集成像 Intl-Tel-Input 这样的国家/地区选择器。

现在,您需要手动附加国家代码 +。我们在这里的文档中有一个部分对此进行了描述(它有点被埋没了......对不起!)。基本上你需要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 中。

于 2016-05-05T21:33:19.223 回答
1

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

例子:

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

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

于 2016-05-06T08:06:41.263 回答