SMS 未使用 Branch.io 和 intl-tel-input 发送到国际号码

Posted

技术标签:

【中文标题】SMS 未使用 Branch.io 和 intl-tel-input 发送到国际号码【英文标题】:SMS not sending to intl numbers using Branch.io and intl-tel-input 【发布时间】:2016-08-31 16:15:31 【问题描述】:

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

这里是Branch.io text me the app doc,主要是下面的代码,更新使用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>

【问题讨论】:

【参考方案1】:

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

目前,您需要手动附加国家代码 +。我们在我们的文档here 中有一个部分对此进行了描述(它有点被埋没了......对不起!)。基本上你需要像这样用var phone = "+91" + form.phone.value; 更新那个sn-p:

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

【讨论】:

【参考方案2】:

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

例子:

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

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

【讨论】:

以上是关于SMS 未使用 Branch.io 和 intl-tel-input 发送到国际号码的主要内容,如果未能解决你的问题,请参考以下文章

Android 调试应用程序未使用 branch.io 打开

branch.io loadRewards - 无法在未调用 Looper.prepare() 的线程内创建处理程序

react native 中的 branch.io 自定义事件未触发奖励规则

Branch.io 事件记录

使用 branch.io 来自 Play 商店的 Android 深层链接

使用 expo branch.io SDK 和广告合作伙伴链接安装归因