首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从其他应用程序中断导航回来,单击处理程序

从其他应用程序中断导航回来,单击处理程序
EN

Stack Overflow用户
提问于 2019-05-16 13:22:07
回答 1查看 64关注 0票数 1

对于我们的公司,我们有许多设备推出的Mobicontrol。这样我们就可以将设备锁定在所谓的kiosk模式中,它禁用了主屏幕的使用,并提供了一个定制的屏幕,只有一个我们可以决定的启动应用程序。

提供的应用程序之一是一个在浏览器( Surf)中打开链接的Ionic应用程序,但这带来了两个问题。

代码

HTML:

代码语言:javascript
复制
<div (click)="$ctrl.doTheThing()"> something </div>

JS:

代码语言:javascript
复制
private doTheThing() {
    this.inAppBrowser.create('surfs://' + url.replace(/^(https?:|)\/\//, ''), '_system');
}

第一期

首先,当我使用android按钮时,单击似乎不再起作用了(我已经在doTheThing函数的第一行中设置了一个警告,但没有显示任何东西)。应用程序中的其他按钮似乎工作得很好,当使用开关应用程序按钮时,它也能工作。

我试过:

  • preventDefault()
  • stopPropagation()
  • 使用tappable属性
  • (tap)而不是(click)

但似乎都不起作用。有人想办法解决这个问题吗?

第二期

注意:当打开一个链接时,它会记住最后一页(在soti冲浪中),所以通过使用后箭头,它首先导航到最后一个链接,当它没有更多的后退位置时,它会返回到应用程序。

我试过:

  • 使用inAppBrowser.create()的返回值并在返回应用程序时调用close()

版本信息

  • @离子型-本机/核心版本: 4.16.0
  • cordova-android: 7.1.4
  • cordova -v:8.1.2 (cordova-lib@8.1.1)
  • npm -v:6.4.1
  • ionic:4.12.0
  • nodeJS: 11.1.0
EN

回答 1

Stack Overflow用户

发布于 2019-05-19 07:51:19

在这里,您可以使用Navbar类和生命周期钩子方法来防止设备返回按钮。

这是一个样本

代码语言:javascript
复制
ionViewDidLoad() {
  this.navBar.backButtonClick = (e: UIEvent) => {
        // todo something
         if (condition ) 
        {
            this.getSaveDialog();
        } else{
                this.navCtrl.pop();
        }
    })
 }

如果在应用程序中打开Appbrowser,将失去对事件的控制,则无法跟踪和管理页面的状态。它可以通过浏览器进行维护。您需要在应用程序中打开的应用程序中放置黑客或替代程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56169650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档