@@ -1011,7 +1011,7 @@ sa.getServerUrl = function() {
10111011 return sa . para . server_url ;
10121012} ;
10131013
1014- var LIB_VERSION = '1.17.11 ' ,
1014+ var LIB_VERSION = '1.17.12 ' ,
10151015 LIB_NAME = 'MiniProgram' ;
10161016
10171017var source_channel_standard = 'utm_source utm_medium utm_campaign utm_content utm_term' ;
@@ -3380,10 +3380,13 @@ sa.autoTrackCustom = {
33803380 } ,
33813381 pageShare : function ( option ) {
33823382 var oldMessage = option . onShareAppMessage ;
3383+ var isPromise = function ( val ) {
3384+ return ! ! val && _ . isFunction ( val . then ) && _ . isFunction ( val . catch ) ;
3385+ } ;
33833386
33843387 option . onShareAppMessage = function ( ) {
33853388 share_method = '转发消息卡片' ;
3386- var oldValue = oldMessage . apply ( this , arguments ) ;
3389+ var oldShareValue = oldMessage . apply ( this , arguments ) ;
33873390
33883391 if ( sa . para . autoTrack && sa . para . autoTrack . pageShare ) {
33893392 var prop = {
@@ -3395,28 +3398,46 @@ sa.autoTrackCustom = {
33953398 sa . autoTrackCustom . trackCustom ( 'pageShare' , prop , '$MPShare' ) ;
33963399 }
33973400
3398- if ( sa . para . allow_amend_share_path ) {
3399- if ( typeof oldValue !== 'object' ) {
3400- oldValue = { } ;
3401- oldValue . path = _ . getCurrentUrl ( this ) ;
3401+ function setPath ( value ) {
3402+ if ( ! _ . isObject ( value ) ) {
3403+ value = { } ;
34023404 }
3403- if ( typeof oldValue === 'object' && ( typeof oldValue . path === 'undefined' || oldValue . path === '' ) ) {
3404- oldValue . path = _ . getCurrentUrl ( this ) ;
3405+
3406+ if ( _ . isUndefined ( value . path ) || value . path === '' ) {
3407+ value . path = _ . getCurrentUrl ( this ) ;
34053408 }
3406- if ( typeof oldValue === 'object' && typeof oldValue . path === 'string' ) {
3407- if ( oldValue . path . indexOf ( '?' ) === - 1 ) {
3408- oldValue . path = oldValue . path + '?' ;
3409+
3410+ if ( _ . isString ( value . path ) ) {
3411+ if ( value . path . indexOf ( '?' ) === - 1 ) {
3412+ value . path = value . path + '?' ;
34093413 } else {
3410- if ( oldValue . path . slice ( - 1 ) !== '&' ) {
3411- oldValue . path = oldValue . path + '&' ;
3414+ if ( value . path . slice ( - 1 ) !== '&' ) {
3415+ value . path = value . path + '&' ;
34123416 }
34133417 }
34143418 }
3419+ value . path = value . path + _ . getShareInfo ( ) ;
3420+ return value ;
3421+ }
34153422
3416- oldValue . path = oldValue . path + _ . getShareInfo ( ) ;
3423+ if ( sa . para . allow_amend_share_path ) {
3424+ oldShareValue = setPath ( oldShareValue ) ;
3425+ if ( _ . isObject ( oldShareValue ) ) {
3426+ for ( var key in oldShareValue ) {
3427+ if ( isPromise ( oldShareValue [ key ] ) ) {
3428+ try {
3429+ oldShareValue [ key ] = oldShareValue [ key ] . then ( function ( data ) {
3430+ return setPath ( data ) ;
3431+ } ) ;
3432+ } catch ( error ) {
3433+ logger . info ( 'onShareAppMessage: ' + error ) ;
3434+ }
3435+ }
3436+ }
3437+ }
34173438 }
34183439
3419- return oldValue ;
3440+ return oldShareValue ;
34203441 } ;
34213442 } ,
34223443 pageShareTimeline : function ( option ) {
0 commit comments