AngularJS中的Whatsapp共享

时间:2015-07-25 07:24:34

标签: angularjs angularjs-directive anchor href whatsapp

应该很简单,但由于此代码无法检测AngularJS代码,因此无法正常工作。

    <a href="whatsapp://send?text={{challenge.challenge_title}}" 
            data-action="{{FullURL}}">Whatsapp</a>

我需要一个指令吗?如果是,那是什么? 有AngularJS经验的人,请帮助。

3 个答案:

答案 0 :(得分:9)

您需要在href角度的config阶段内清理锚whatsapp,这样才能使您的href带有app.config(function($compileProvider){ //other configuration code here $compileProvider.aHrefSanitizationWhitelist(/^\s*(whatsapp):/); }) 前缀。

<强>代码

using System.Linq;

查看此SO Question了解详情。

答案 1 :(得分:0)

在使用$ compileProvider.aHrefSanitizationWhitelist(/ ^ \ s *(whatsapp):/)后,我遇到了一个不安全的URL问题;当我阅读角度文档时,它说:

aHrefSanitizationWhitelist([正则表达式]); 检索或覆盖在[href]清理期间用于将安全URL列入白名单的默认正则表达式。 清理是一项旨在通过HTML链接防止XSS攻击的安全措施。 通过数据绑定将要分配给[href]的任何URL首先被标准化并变为绝对URL。然后,将url与aHrefSanitizationWhitelist正则表达式进行匹配。如果找到匹配项,则将原始URL写入dom。否则,绝对网址会以“不安全”为前缀:&#39;字符串然后才写入DOM。 &#34;如果找到匹配,则将原始URL写入dom。否则,绝对网址会以“不安全”为前缀:&#39;字符串,然后才写入DOM。&#34; 因此,除了whatsapp之外的所有其他网址,将无法找到匹配项 它将被标记为不安全

另一种方法是制定指令

&#13;
&#13;
angular.module('shareLink')
  .directive('whatsApp', function (){
    return{
        link: function (scope, elem, $attr){
            elem.on('click', function (){
                var text = $attr.text;
                var url = $attr.whatsApp;
                var message = encodeURIComponent(text) + " - " + encodeURIComponent(url);
                var whatsapp_url = "whatsapp://send?text=" + message;
                window.location.href = whatsapp_url;

            });
        }
    }
});
&#13;
<a class="sharelink whatsapp"  data-action="share/whatsapp/share" data-text="you can add title or any text here" whats-app="{{url}}">
                        <i class="fa fa-whatsapp "></i> WHATSAPP
                    </a>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

<a href="https://api.whatsapp.com/send?text={{Your desired Text}}" data-action="share/whatsapp/share" class="share-btn whatsapp" >Share on Whatsapp</a>

这是最简单的过程...

干杯。?