Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 从其他应用程序返回时单击处理程序_Angularjs_Angular_Ionic Framework_Ionic2 - Fatal编程技术网

Angularjs 从其他应用程序返回时单击处理程序

Angularjs 从其他应用程序返回时单击处理程序,angularjs,angular,ionic-framework,ionic2,Angularjs,Angular,Ionic Framework,Ionic2,对于我们公司来说,我们有很多设备都是通过Mobicontrol Soti推出的。这使我们可以将设备锁定在一种称为kiosk模式的模式中,该模式禁用主屏幕的使用,并提供一个自定义屏幕,该屏幕上只有一组我们可以决定的应用程序 提供的应用之一是Ionic应用,它可以在浏览器中打开链接(Soti Surf),但这会带来两个问题 代码 HTML: private doTheThing() { this.inAppBrowser.create('surfs://' + url.replace(/^(

对于我们公司来说,我们有很多设备都是通过Mobicontrol Soti推出的。这使我们可以将设备锁定在一种称为kiosk模式的模式中,该模式禁用主屏幕的使用,并提供一个自定义屏幕,该屏幕上只有一组我们可以决定的应用程序

提供的应用之一是Ionic应用,它可以在浏览器中打开链接(Soti Surf),但这会带来两个问题

代码 HTML:

private doTheThing() {
    this.inAppBrowser.create('surfs://' + url.replace(/^(https?:|)\/\//, ''), '_system');
}
什么 JS:

private doTheThing() {
    this.inAppBrowser.create('surfs://' + url.replace(/^(https?:|)\/\//, ''), '_system');
}
第一期 首先,当我使用android后退按钮时,点击似乎不再起作用(我在
doTheThing
函数的第一行中添加了一个警报,但没有显示任何内容)。 应用程序中的其他按钮似乎工作正常,当使用“切换应用程序”按钮时,它也工作正常

我试过:

  • preventDefault()
  • stopPropagation()
  • 使用
    tappable
    属性
  • (点击)
    而不是
    (点击)
但似乎都不管用。有人有办法解决这个问题吗

第二期 注意:这不太重要 当打开一个链接时,它会记住最后一页(在soti surf中),因此通过使用后退箭头,它会首先导航到最后一个链接,当它没有更多后退位置时,它会返回到应用程序

我试过:

  • 使用appbrowser.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
  • 爱奥尼亚的:4.12.0
  • nodeJS:11.1.0

在爱奥尼亚,您可以通过使用
Navbar
类和使用生命周期挂钩方法来防止设备返回按钮

这是一个样本

ionViewDidLoad() {
  this.navBar.backButtonClick = (e: UIEvent) => {
        // todo something
         if (condition ) 
        {
            this.getSaveDialog();
        } else{
                this.navCtrl.pop();
        }
    })
 }
如果在应用程序的Appbrowser中打开,将失去对事件的控制,您无法跟踪和管理事件 页面状态。
它可以通过浏览器进行维护。您需要在您的应用程序中放置黑客或替代方法,该应用程序将在应用程序中打开,您可以通过使用
Navbar
类和使用Lifecycle钩子方法阻止设备返回按钮

这是一个样本

ionViewDidLoad() {
  this.navBar.backButtonClick = (e: UIEvent) => {
        // todo something
         if (condition ) 
        {
            this.getSaveDialog();
        } else{
                this.navCtrl.pop();
        }
    })
 }
如果在应用程序的Appbrowser中打开,将失去对事件的控制,您无法跟踪和管理事件 页面状态。
它可以通过浏览器进行维护。您需要在应用程序中打开的应用程序中放置黑客或替代方法

谢谢,但我只是想知道,为什么我会有不同的行为,这取决于使用返回箭头或任何其他方式时如何返回到我的应用程序。黑客似乎是错误的,因为它觉得这甚至不应该发生在银行,但我只是想知道为什么我有不同的行为,这取决于如何返回到我的应用程序时,使用返回箭头或任何其他方式。黑客似乎是错误的,因为它觉得这种情况甚至不应该发生