我有一個ActionSheet,當用戶點擊列表項時顯示。在ActionSheet中有三個按鈕 - 一個用於刪除聯繫人,一個用於呼叫他們,另一個用於解除ActionSheet。我的問題是,我如何將相應的<a href="tel:000000000"></a>
綁定到按鈕?從Sencha Touch的按鈕觸發'tel'鏈接
我需要指定'tel:'協議,以便iOS和Android將強制Phone應用程序加載此數字?
我有一個ActionSheet,當用戶點擊列表項時顯示。在ActionSheet中有三個按鈕 - 一個用於刪除聯繫人,一個用於呼叫他們,另一個用於解除ActionSheet。我的問題是,我如何將相應的<a href="tel:000000000"></a>
綁定到按鈕?從Sencha Touch的按鈕觸發'tel'鏈接
我需要指定'tel:'協議,以便iOS和Android將強制Phone應用程序加載此數字?
這很簡單,
所有你需要做的就是改變按鈕的處理程序文件的位置(窗口元素):
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
});
沒有試過,但如果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);
}
參考
您是否嘗試過這個在iOS模擬器?我一直在關注Sencha論壇,我認爲這是iOS安全問題 - 它不會允許除錨點元素以外的其他任何事件觸發「tel」事件... – BenM 2011-04-18 19:58:56
它不能從模擬器,但它適用於普通的iPhone。嘗試把一個簡單的鏈接與電話的URL:它會從iPhone的工作,但不是從模擬器... – Rubinsh 2011-04-26 09:37:49
好的,謝謝@Rubinsh! – BenM 2011-04-27 13:15:45