@@ -22,6 +22,7 @@ angular.module('mm.core')
2222 * @name mmLink
2323 *
2424 * @param {Boolean } [captureLink=false] If the link needs to be captured by the app.
25+ * @param {Boolean } [inApp=false] True to open in embedded browser, false to open in system browser.
2526 * @param {String } [autoLogin=check] If the link should be open with auto-login. Accepts the following values:
2627 * "yes" -> Always auto-login.
2728 * "no" -> Never auto-login.
@@ -33,9 +34,11 @@ angular.module('mm.core')
3334 * Convenience function to correctly navigate, open file or url in the browser.
3435 *
3536 * @param {String } href HREF to be opened.
37+ * @param {Mixed } [inApp] True to open in embedded browser, false to open in system browser.
3638 * @param {String } [autoLogin=check] Whether to auto-login. "yes", "no" or "check".
3739 */
38- function navigate ( href , autoLogin ) {
40+ function navigate ( href , inApp , autoLogin ) {
41+ inApp = inApp && inApp !== 'false' ;
3942 autoLogin = autoLogin || 'check' ;
4043
4144 if ( href . indexOf ( 'cdvfile://' ) === 0 || href . indexOf ( 'file://' ) === 0 ) {
@@ -56,13 +59,29 @@ angular.module('mm.core')
5659 // It's an external link, we will open with browser. Check if we need to auto-login.
5760 if ( ! $mmSite . isLoggedIn ( ) ) {
5861 // Not logged in, cannot auto-login.
59- $mmUtil . openInBrowser ( href ) ;
62+ if ( inApp ) {
63+ $mmUtil . openInApp ( href ) ;
64+ } else {
65+ $mmUtil . openInBrowser ( href ) ;
66+ }
6067 } else if ( autoLogin == 'yes' ) {
61- $mmSite . openInBrowserWithAutoLogin ( href ) ;
68+ if ( inApp ) {
69+ $mmSite . openInAppWithAutoLogin ( href ) ;
70+ } else {
71+ $mmSite . openInBrowserWithAutoLogin ( href ) ;
72+ }
6273 } else if ( autoLogin == 'no' ) {
63- $mmUtil . openInBrowser ( href ) ;
74+ if ( inApp ) {
75+ $mmUtil . openInApp ( href ) ;
76+ } else {
77+ $mmUtil . openInBrowser ( href ) ;
78+ }
6479 } else {
65- $mmSite . openInBrowserWithAutoLoginIfSameSite ( href ) ;
80+ if ( inApp ) {
81+ $mmSite . openInAppWithAutoLoginIfSameSite ( href ) ;
82+ } else {
83+ $mmSite . openInBrowserWithAutoLoginIfSameSite ( href ) ;
84+ }
6685 }
6786 }
6887 }
@@ -82,11 +101,11 @@ angular.module('mm.core')
82101 if ( attrs . captureLink && attrs . captureLink !== 'false' ) {
83102 $mmContentLinksHelper . handleLink ( href ) . then ( function ( treated ) {
84103 if ( ! treated ) {
85- navigate ( href , attrs . autoLogin ) ;
104+ navigate ( href , attrs . inApp , attrs . autoLogin ) ;
86105 }
87106 } ) ;
88107 } else {
89- navigate ( href , attrs . autoLogin ) ;
108+ navigate ( href , attrs . inApp , attrs . autoLogin ) ;
90109 }
91110 }
92111 }
0 commit comments