系统浏览器中的离子应用程序打开链接

use*_*830 19 angularjs ionic-framework

我想在Safari和Android的铬(无论浏览器默认)以打开IOS系统中的浏览器中的链接,例如.

我遇到的问题是链接确实在系统浏览器中打开,但它也在应用程序中打开.我希望链接只在系统浏览器中打开,而不是在应用程序内部.

这是我的代码.

<a ng-href="http://example.com/login/{{user._id}}" onclick="window.open(this.href, '_system', 'location=yes')" class="ion-home color-primary item"> Dashboard</a>
Run Code Online (Sandbox Code Playgroud)

请记住,我也将id传递给我的端点.

小智 24

尝试

<a class="ion-home color-primary item" href="#" onclick="window.open('http://example.com/login/{{user._id}}', '_system', 'location=yes'); return false;"> Dashboard</a>
Run Code Online (Sandbox Code Playgroud)


小智 6

Capacitor 有一个易于使用的插件,用于启动应用内浏览器。

https://capacitorjs.com/docs/apis/browser

安装:

npm install @capacitor/browser
npx cap sync
Run Code Online (Sandbox Code Playgroud)

用法:

import { Browser } from '@capacitor/browser';

const openCapacitorSite = async () => {
    await Browser.open({ url: 'http://capacitorjs.com/' });
};
Run Code Online (Sandbox Code Playgroud)


Fra*_*jak 5

您可以使用InAppBrowser插件https://cordova.apache.org/docs/en/3.0.0/cordova/inappbrowser/inappbrowser.html来完成此操作

如果您出于某种原因不想使用插件,请查看我对类似问题的回答:https : //stackoverflow.com/a/30397786/1630623

编辑:如果您已经在使用插件,则可能必须删除onclick代码并添加target="_system",或添加event.preventDefault();onclick处理程序


Pra*_*ant 5

在更新的(3.0)版本中,“ In App Browser Plugin”是更好的解决方案。

<button ion-button block clear (click)="openWebpage(url)">Open Webpage</button>
Run Code Online (Sandbox Code Playgroud)

和openWebpage方法是这样的

 openWebpage(url: string) {
        const options: InAppBrowserOptions = {
          zoom: 'no'
        }

        // Opening a URL and returning an InAppBrowserObject
        const browser = this.inAppBrowser.create(url, '_self', options);

       // Inject scripts, css and more with browser.X
      }
Run Code Online (Sandbox Code Playgroud)

  • 这是工作,适合我的要求谢谢 (2认同)
  • 目标不应该是“_self”。它应该是“_system”来满足实际问题。 (2认同)