私はWhatsApp共有メッセージに取り組んできました:
whatsapp-button.js
$_u.="Product Name:".$_productName."\n";
$_u.="Sku:".$_productSku."\n";
<a href="whatsapp://send" data-text="<?php echo nl2br($_u); ?>" data-href="" class="wa_btn <?php echo $buttonsize; ?>" style="display:none">Share</a>
改行を追加する方法:
私が試してみました \n
、\r\n
、PHP_EOL
、および%0D%0A
ですが、テキストとして表示されるだけです。
改行を含むテキストのみを送信する場合
use this %0a
link =`whatsapp://send?text=%0aHello%0aWorld`;
改行を含むテキストを含むURLリンクを送信する場合
var encodedURL = encodeURIComponent(some_url);
link =`whatsapp://send?text=${encodedURL}%0aHello%0aWorld`;
このリンクをアンカータグに埋め込みました
<a href=link> Click here! </a>
私は1つの実用的な解決策を得ました:
HTML:
$_u.="Product Name:".$_productName."\n";
$_u.="Sku:".$_productSku."\n";
<a data-text="<?php echo $_u; ?>" data-link="" class="whatsapp">Share</a>
JS:
var isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function() {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i);
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
}
};
$(document).on("click", '.whatsapp', function() {
if( isMobile.any() ) {
var text = $(this).attr("data-text");
var url = $(this).attr("data-link");
var message = encodeURIComponent(text) + " - " + encodeURIComponent(url);
var whatsapp_url = "whatsapp://send?text=" + message;
window.location.href = whatsapp_url;
} else {
alert("Please share this in mobile device");
}
});
ここ に解決策があります。これは基本的に以下を使用しています。
whatsappMessage = window.encodeURIComponent(whatsappMessage)