【问题标题】:How can i control call popup options in IONIC我如何控制 IONIC 中的呼叫弹出选项
【发布时间】:2020-10-18 00:26:20
【问题描述】:

这是我的情况,我的 Ionic 5 应用程序中有一个联系人列表,其中每个联系人可以包含一个或多个电话号码。其中一些可能是移动的,也支持 SMS。所以现在当我在我的列表中创建电话数组时,我使用下面的代码来允许用户发起呼叫

  <p *ngIf="phone.type === 'Mobile'">
    <ion-icon class="big center green" ios="car"></ion-icon> 
    <a (click)="dialNumber(phone.number)">({{phone.number | slice:0:3 }})
            {{phone.number | slice:3:6 }}-{{phone.number | slice:6:10 }}
    </a>
  </p>

dialNumber(nbr: string) {
    this.callNumber.callNumber(nbr, true)
  .then(res => console.log('Launched dialer!', res))
  .catch(err => console.log('Error launching dialer', err));
  }

上面的代码在屏幕下部创建一个弹出窗口,其中包含呼叫该号码和取消的选项。我真正想做的是显示联系人的所有号码,以便用户可以单击所需的 nbr。我也希望能够在弹出窗口中包含触发短信与通话的项目。 所以我的问题是我将如何去控制弹出窗口并添加额外的 nbrs 并可能允许 SMS。

这是目前的截图

【问题讨论】:

    标签: ionic-framework ionic4


    【解决方案1】:

    您似乎正在使用this Cordova plugin,因此您无法更改该弹出窗口中显示的选项。

    您可以做的是在用户点击联系人时显示您自己的自定义操作表,然后根据已选择的联系人设置可用选项。

    https://ionicframework.com/docs/api/action-sheet

    import { Component } from '@angular/core';
    import { ActionSheetController } from '@ionic/angular';
    
    @Component({
      selector: 'action-sheet-example',
      templateUrl: 'action-sheet-example.html',
      styleUrls: ['./action-sheet-example.css'],
    })
    export class ActionSheetExample {
    
      constructor(public actionSheetController: ActionSheetController) {}
    
      async presentActionSheet() {
        const actionSheet = await this.actionSheetController.create({
          header: 'Albums',
          cssClass: 'my-custom-class',
          buttons: [
            {
              text: 'Delete',
              role: 'destructive',
              icon: 'trash',
              handler: () => {
                console.log('Delete clicked');
              }
            }, 
            {
              text: 'Share',
              icon: 'share',
              handler: () => {
                console.log('Share clicked');
              }
            }, 
            {
              text: 'Play (open modal)',
              icon: 'caret-forward-circle',
              handler: () => {
                console.log('Play clicked');
              }
            }, 
            {
              text: 'Favorite',
              icon: 'heart',
              handler: () => {
                console.log('Favorite clicked');
              }
            }, 
            {
              text: 'Cancel',
              icon: 'close',
              role: 'cancel',
              handler: () => {
                console.log('Cancel clicked');
              }
            }
          ]
        });
        
        await actionSheet.present();
      }
    
    }
    

    因此,在这种情况下,当用户点击某个联系人时,该用户会看到您的操作表,其中包含发送 SMS 和拨打电话的选项,如果用户选择拨打电话,您将隐藏该操作表然后你会调用 Cordova 插件。

    【讨论】:

    • 谢谢,应该可以,但我想知道有没有办法隐藏或抑制科尔多瓦呼叫行动表?如果用户单击我的自定义工作表上的电话号码,然后必须在插件上再次按下电话,那并不是很好。如果我使用电容器与科尔多瓦,这也会改变吗?
    • @ConfusedCoder 我真的不知道那个 Cordova 插件的细节,但我想底层操作系统总是会问用户他/她是否真的想打电话所以我猜将无法跳过该步骤:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多