2011-04-03 23 views
3

我有一個ActionSheet,當用戶點擊列表項時顯示。在ActionSheet中有三個按鈕 - 一個用於刪除聯繫人,一個用於呼叫他們,另一個用於解除ActionSheet。我的問題是,我如何將相應的<a href="tel:000000000"></a>綁定到按鈕?從Sencha Touch的按鈕觸發'tel'鏈接

我需要指定'tel:'協議,以便iOS和Android將強制Phone應用程序加載此數字?

回答

7

這很簡單,

所有你需要做的就是改變按鈕的處理程序文件的位置(窗口元素):

 var tapHandler = function(button, event){ 
      Ext.Msg.confirm('External Link', 'Call ' + button.contactName + "?", function(res){ 
       if (res == 'yes') { 
        window.location = button.callUrl; 
       } 
      }, this); 

     }; 


     var callButton = new Ext.Button({ 
      text: 'Call Now', 
      callUrl: 'tel:995223423', 
      contactName: 'Ben M', 
      handler: tapHandler 
     }); 
+0

您是否嘗試過這個在iOS模擬器?我一直在關注Sencha論壇,我認爲這是iOS安全問題 - 它不會允許除錨點元素以外的其他任何事件觸發「tel」事件... – BenM 2011-04-18 19:58:56

+0

它不能從模擬器,但它適用於普通的iPhone。嘗試把一個簡單的鏈接與電話的URL:它會從iPhone的工作,但不是從模擬器... – Rubinsh 2011-04-26 09:37:49

+0

好的,謝謝@Rubinsh! – BenM 2011-04-27 13:15:45

0

沒有試過,但如果Rubinsh的方法沒有按」不要嘗試以編程方式在按鈕的單擊處理程序中創建它。

function(){ 
    var alink = Ext.getBody().createChild({tag: 'a', href: 'tel:#########'}); 
    var event = document.createEvent("TouchEvent"); 
    event.initTouchEvent('tap', true, true, window, 0, 0, 0, 0); 
    alink.dispatchEvent(event); 
} 

參考