使用离子应用程序内的系统浏览器打开所有链接

塞巴斯蒂安·埃尔南德斯(Sebastian Hernandez)

我需要在系统浏览器中打开应用程序特定部分内的所有链接。诀窍是这些链接来自外部资源(API),因此我无法添加ng-click帮助我从外部打开链接功能。

我正在使用应用程序内浏览器插件(ng-cordova)。实际上,我还有其他可在外部打开的链接,但是在这种情况下,这些链接可以位于内容的任何部分,因此我的问题是,如何在所有链接加载后向所有链接添加ng-click指令?还是有可能,如何配置应用内浏览器插件以在系统浏览器中打开所有链接?

顺便说一句,即使在应用程序浏览器中,简单链接也不会打开:我点击它们,没有任何反应。

谢谢您的帮助

caiocpricci2

AFAIK没有自动执行此操作的方法,您必须使用应用程序内浏览器js代码在每个平台上从外部一致地打开链接。

您的问题没有给出服务器返回值的清晰示例,因此我假设您正在获取完整的html块,而只是将其呈现在屏幕上。假设请求返回的基本信息如下:

<div id="my-links">
   <a href='http://externallink.com'> External Link 1 </a>
   <a href='http://externallink.com'> External Link 2 </a>
   <a href='http://externallink.com'> External Link 3 </a>
</div>

您的请求如下所示:

$http.get('givemelinks').success(function(htmlData){
   $scope.myContent = htmlData;
})

如果您有权访问服务器端并可以进行更改:

在您的请求中添加一个“ inappbrowser”参数,以检测是否应返回与inappbrowser兼容的链接并将服务器的响应更改为:

if (inappbrowser) {
<div id="my-links">
   <div ng-click='openExternal($event)' data-external='http://externallink.com'> External Link 1 </div>
   <div ng-click='openExternal($event)' data-external='http://externallink.com'> External Link 2 </div>
   <div ng-click='openExternal($event)' data-external='http://externallink.com'> External Link 3 </div>
</div>
} else {
 <div id="my-links">
   <a href='http://externallink.com'> External Link 1 </a>
   <a href='http://externallink.com'> External Link 2 </a>
   <a href='http://externallink.com'> External Link 3 </a>
</div>
}

并有一个通用的openExternal方法:

$scope.openExternal = function($event){
  if ($event.currentTarget && $event.currentTarget.attributes['data-external'])
  window.open($event.currentTarget.attributes['data-external'], '_blank', 'location=yes');
}

如果您不能更改服务器端

解析响应并将链接替换为ng-clicks:

$http.get('givemelinks').success(function(htmlData){
   htmlData = htmlData.replace(/href='(.*)'/,'ng-click="openExternal($event)" data-external="$1"').replace(/<a/,"<div").replace(/a>/,"div>")
   $scope.myContent = htmlData;
})

并使用与上述相同的openExternal方法。

我将div替换为锚点,以防止更改应用程序路线。并非每个应用程序都需要这样做。

为了使它更好,您应该将其捆绑在一个open-external指令中,以便可以在多个控制器中使用它并保持它们更整洁。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正确在浏览器或本机应用程序中打开Facebook页面链接IOS Cordova

来自分类Dev

Webview-在外部应用程序和浏览器/ Android中打开链接

来自分类Dev

在链接点击而不是浏览器上打开我的应用程序-Android

来自分类Dev

Android WebView在浏览器而不是应用程序中打开链接

来自分类Dev

如何打开从打包的应用程序Web视图到默认浏览器的链接?

来自分类Dev

iOS应用程序,链接以在浏览器中打开网站,网站中的链接关闭浏览器

来自分类Dev

如何防止应用程序浏览器中的Facebook打开我的网站链接?

来自分类Dev

Angular Marked和Inappbrowser在系统浏览器中打开所有链接

来自分类Dev

phonegap和cordova无法在应用程序浏览器中打开链接

来自分类Dev

如何从浏览器选择使用Software Center应用程序打开?

来自分类Dev

有没有办法从Internet浏览器打开应用程序?

来自分类Dev

Android应用程序链接-在浏览器中从应用程序打开URL而不触发应用程序链接

来自分类Dev

在Ionic Cordova应用程序中,如何允许通过不同来源的内容在系统浏览器中打开链接

来自分类Dev

使用命令行从应用程序在浏览器中打开GMail帐户

来自分类Dev

如何在Android的WebView的外部浏览器和应用程序内打开链接

来自分类Dev

如何使Google Chrome浏览器的“应用程序模式”在外部浏览器中打开外部链接?

来自分类Dev

如何从浏览器选择使用Software Center应用程序打开?

来自分类Dev

有没有办法从Internet浏览器打开应用程序?

来自分类Dev

正确在浏览器或本机应用程序中打开Facebook页面链接IOS Cordova

来自分类Dev

标记电子邮件链接以在Web浏览器而非移动应用程序中打开

来自分类Dev

如何打开从打包的应用程序Web视图到默认浏览器的链接?

来自分类Dev

使用C#控制台应用程序打开和关闭Internet浏览器

来自分类Dev

Angular Marked和Inappbrowser在系统浏览器中打开所有链接

来自分类Dev

是否可以根据打开链接的应用程序设置不同的浏览器来打开链接?

来自分类Dev

从 iOS 应用程序在浏览器中打开超链接

来自分类Dev

.NET Core 应用程序中浏览器链接使用的端口无效

来自分类Dev

单击链接时阻止 iOS 移动浏览器强制打开应用程序?

来自分类Dev

单击外部链接时如何在 WebView 应用程序中打开 Web 浏览器?

来自分类Dev

WebView 打开应用程序/默认浏览器

Related 相关文章

  1. 1

    正确在浏览器或本机应用程序中打开Facebook页面链接IOS Cordova

  2. 2

    Webview-在外部应用程序和浏览器/ Android中打开链接

  3. 3

    在链接点击而不是浏览器上打开我的应用程序-Android

  4. 4

    Android WebView在浏览器而不是应用程序中打开链接

  5. 5

    如何打开从打包的应用程序Web视图到默认浏览器的链接?

  6. 6

    iOS应用程序,链接以在浏览器中打开网站,网站中的链接关闭浏览器

  7. 7

    如何防止应用程序浏览器中的Facebook打开我的网站链接?

  8. 8

    Angular Marked和Inappbrowser在系统浏览器中打开所有链接

  9. 9

    phonegap和cordova无法在应用程序浏览器中打开链接

  10. 10

    如何从浏览器选择使用Software Center应用程序打开?

  11. 11

    有没有办法从Internet浏览器打开应用程序?

  12. 12

    Android应用程序链接-在浏览器中从应用程序打开URL而不触发应用程序链接

  13. 13

    在Ionic Cordova应用程序中,如何允许通过不同来源的内容在系统浏览器中打开链接

  14. 14

    使用命令行从应用程序在浏览器中打开GMail帐户

  15. 15

    如何在Android的WebView的外部浏览器和应用程序内打开链接

  16. 16

    如何使Google Chrome浏览器的“应用程序模式”在外部浏览器中打开外部链接?

  17. 17

    如何从浏览器选择使用Software Center应用程序打开?

  18. 18

    有没有办法从Internet浏览器打开应用程序?

  19. 19

    正确在浏览器或本机应用程序中打开Facebook页面链接IOS Cordova

  20. 20

    标记电子邮件链接以在Web浏览器而非移动应用程序中打开

  21. 21

    如何打开从打包的应用程序Web视图到默认浏览器的链接?

  22. 22

    使用C#控制台应用程序打开和关闭Internet浏览器

  23. 23

    Angular Marked和Inappbrowser在系统浏览器中打开所有链接

  24. 24

    是否可以根据打开链接的应用程序设置不同的浏览器来打开链接?

  25. 25

    从 iOS 应用程序在浏览器中打开超链接

  26. 26

    .NET Core 应用程序中浏览器链接使用的端口无效

  27. 27

    单击链接时阻止 iOS 移动浏览器强制打开应用程序?

  28. 28

    单击外部链接时如何在 WebView 应用程序中打开 Web 浏览器?

  29. 29

    WebView 打开应用程序/默认浏览器

热门标签

归档