2011-07-21 16 views
2

私は、電話番号と電子メールアドレスを表示するサイトを持っています。その目的は、ユーザーが単に電話または電子メールをクリックしてアクションを完了できるようにすることです。BlackBerryのClick-to-Call

は現在、私はTELLまたは電子メールのためのURIを作成し、行動を追跡するの.phpファイルを持っています。だから私は、ユーザーが見ることのリンクのための私のhtmlに次き:

<a href="track.php?" target="_self">Contact</a> 

track.phpその通話/メール/ウェブサイトかどうかを判断し、$場所VAR(どちらかTELセット:/ 1231231234をウェブ:www.test.com/mailto:[email protected])。

1.

echo '<script type="text/javascript"> 
     window.location="'.$location.'"; 
     </script>'; 

2.

header('Location: ' . $location); 

3.

echo '<script type="text/javascript"> 
     header.location="'.$location.'"; 
     </script>'; 

これらのメソッドのすべてが上で動作:次の方法でリダイレクトを行って/それを返却しようとした場合iPhone/Android/Symbianデバイスではなく、ブラックベリーではありません(私はBB Curve 8520でテストしました)。

私は(以下のコードを参照してください)リンクをハードコーディングし、直接それをクリックした場合、それは100%に動作しますが、できるだけ早く私は、リダイレクトを行うとして、それは私に「Protocallサポートされていません...」というエラーを与えます。

<a href="tel:xxxxxxxxx">Phone xxxxxxxxxx</a> 
    <a href="mailto:[email protected]">Mail [email protected]x.co.za</a> 
    <a href="web:xxxx">Open link www.xxxxxxx.co.za</a> 
    <a href="sms:xxxxx">Send SMS to xxxxxxx</a> 

提案/解決策/回避策はありますか?

PS。 <meta http-equiv="x-rim-auto-match" content="none" />メタタグを付けて試してみました。それでも同じエラーが出ます。

答えて

1

残念ながら、私はテストするブラックベリーを持っているが、ここであなたが試すことができるものですしていない。

があなたのトラッカーを呼び出すために、同期のXMLHttpRequestコール(すなわち、AJAXが、「非同期」の部分なし)を使用します。この場合、track.phpはバックグラウンドで呼び出されるため、リダイレクトする必要はありません。

<script type="text/javascript"> 
function callURL(url) { 
// I'll assume you don't have IE on your BlackBerry, and that you can just use the native XMLHttpRequest object 
var xhr = new XMLHttpRequest(); 
xhr.open('GET', url, false); 
xhr.send(); 
</script> 
<a href="tel:xxxxxxxxx" onclick="callURL('track.php');">Phone xxxxxxxxxx 
</a> 
+0

こんにちはジョナサン、答えをありがとう。私の問題は、track.phpがリンク内のURIを決定/作成するため、ここに貼り付けたコードの「href」部分がtrack.phpに作成されることです。私はこれを調べて、他の方法で実装できるかどうかを確認します。 – Theunodebruin

0

ブラックベリーブラウザ(OS 4および5)は、XMLHttpRequestに対する非常に不安定なサポートを備えています。試すだけの価値があります。私たちはこれまで数年前に取り組んできました。