列表中的一键拨号

与前面发表的那篇文章类似,也是列表中按钮的实现(列表中的按钮实现可参考点击打开链接),只是按下列表中的按钮可实现一键拨号。

电话拨号可用Intent来实现,如果是在普通的按钮实现一键拨号的话很容易实现,代码如下

public class TelActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        // 电话号码输入框
        final EditText TelEdit = (EditText)findViewById(R.id.tel_edit);
        
        // 拨打电话按钮
        Button tel = (Button) findViewById(R.id.tel);
        // 使用Intent拨打电话
        /*****************************************************************************************************/
        /* 使用Intent拨打电话 */
        tel.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				// 用于存放电话号码
				String TelNum;
				// 获取屏幕输入的电话号码
				TelNum = TelEdit.getText().toString();
				// 第一个参数为Intent的拨打电话行为,第二个参数为电话号码解析为Uri格式
				Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:"+TelNum));
				startActivity(intent);
			}
		});
        /* <end>使用Intent拨打电话 */
        /*****************************************************************************************************/
    }
}
之前介绍了列表中的按钮实现是放在适配器的类中,也就是非Activity类,在非Activity类中实现一键拨号与以上介绍的方法稍有不同

首先要在当前运行的Activity中申明一个静态对象public static MainActivity MyActivity;而后需在onCreate方法中给MyActivity 赋值,即MyActivity = this;

	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		
		View v = super.getView(position, convertView, parent);
		
		Button btn = (Button)v.findViewById(R.id.call_btn);
		btn.setTag(position);
		btn.setOnClickListener(new OnClickListener() {
			
			public void onClick(View v) {
				// TODO Auto-generated method stub
				
				// 第一个参数为Intent的拨打电话行为,第二个参数为电话号码解析为Uri格式
				Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:13526365984"));
				// 在MainActivity中启动Intent,MyActivity就是在当前运行的Activity中申明的静态对象
				MainActivity.MyActivity.startActivity(intent);
			}
		});
		
		return v;
		
	}
参考 点击打开链接


### 如何在 UniApp 中实现一键拨打功能 #### 使用 `uni.makePhoneCall` API 实现拨打电话功能 为了实现在不同平台上点击按钮即可触发一键拨号的功能,在 UniApp 中可以利用内置的 `uni.makePhoneCall()` 方法来完成这一操作[^1]。 此方法接受一个对象参数,其中包含电话号码作为属性值。下面是一个具体的实例展示如何创建这样一个拨打电话的功能: ```javascript // 定义拨打电话的方法 function callPhoneNumber(phoneNumber) { uni.makePhoneCall({ phoneNumber: phoneNumber, // 仅支持数字和+ - success() { console.log('调用成功'); }, fail(error) { console.error('调用失败', error); } }); } ``` 当用户点击页面上的某个元素时(比如按钮),可以通过绑定事件处理器的方式调用上述定义好的函数并传递相应的手机号码字符串给它。这里给出一段完整的 HTML 和 JavaScript 结合使用的例子: ```html <template> <view class="container"> <!-- 绑定tap事件到callPhone方法 --> <button type="primary" @tap="callPhone">联系客服</button> </view> </template> <script> export default { data() { return { servicePhoneNumber: '0755-12345678' // 假设这是服务热线号码 }; }, methods: { callPhone() { const { servicePhoneNumber } = this; if (servicePhoneNumber) { callPhoneNumber(servicePhoneNumber); // 调用之前定义的拨打电话逻辑 } else { console.warn('未设置有效的联系电话'); } } } }; </script> ``` 这段代码展示了怎样在一个 Vue 单文件组件里集成一键拨号的能力。通过这种方式可以在 H5、iOS 及 Android 应用等多个终端上提供一致性的用户体验。 由于 UniApp 的跨平台特性,这套方案能够很好地适应各种环境下的需求,而无需针对每一个目标平台单独编写不同的业务逻辑[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值