iOSは友盟の微信の共有に成功した返事ができない問題について


友盟の客服とフォーラムのサービスが行き届いていないと言わざるを得ない.特に最近、友盟の微信を手に入れて分かち合うことが成功したかどうかの状態は、分かち合うコールバックにはまったく手に入らず、コールバックは全然行かない.そこで友盟フォーラムを見て、質問する人が多くて、答えが全然なくて、オンラインのカスタマーサービスに問い合わせて、返事がアイデアに答えられないか、ドキュメントやdemoを見なければなりませんが、あなたのdemoにも問題があります.
问题详述:本项目は友盟分かち合い、微信支払いなどを统合している.アプリから微信にジャンプし、微信からアプリに戻るには、AppDelegateで-(BOOL)アプリケーション:(UIApplication*)app openURL:(NSURL*)url options:(NSDictionary*)options(iOS 9以降の方法);また、共有時に友盟の共有APIを呼び出し、その中にcompletionコールバックがあり、ここで共有が成功したかどうかを検出すべきだったが、このcompletionはまったく行かなかった.友盟のカスタマーサービスに問い合わせると、相手は前述のAppDelegateエージェントの方法で処理すると言っただけで、いったいどうすればいいのか、ドキュメントを見ます.の
システムコールバック友盟ドキュメント:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options
{
    //6.3   API  ,         (  :  facebookSDK,VK )   [   6.2 api       ],         
    BOOL result = [[UMSocialManager defaultManager]  handleOpenURL:url options:options];
    if (!result) {
        //       SDK   
    }
    return result;
}

demo里も同じです.彼らはどのように友盟の機能を実現するかしか考えていないので、肝心なのは私のところに微信の支払いを統合して、両者は以上の代理店を歩いているので、区別しなければなりません.
友盟共有呼び出しのAPI:
//      
    [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
        if (error) {
            UMSocialLogInfo(@"************Share fail with error %@*********",error);
        }else{
            if ([data isKindOfClass:[UMSocialShareResponse class]]) {
                UMSocialShareResponse *resp = data;
                //      
                UMSocialLogInfo(@"response message is %@",resp.message);
                //          
                UMSocialLogInfo(@"response originalResponse data is %@",resp.originalResponse);

            }else{
                UMSocialLogInfo(@"response data is %@",data);
            }
        }
    }];

問題の肝心な点:同時に友盟の分かち合いと微信の支払いを統合して、すべて同じ代理方法を歩いて、区別する必要があります.そうしないと、分かち合いのコールバックは行かない!
解決方法:
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options
{
//    DLog(@"url = %@ 
options = %@",url,options); if ([url.host isEqualToString:@"safepay"]) { // , [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) { NSLog(@"result = %@",resultDic); }]; return YES; }else if ([options[UIApplicationOpenURLOptionsSourceApplicationKey] isEqualToString:@"com.tencent.xin"] && [url.absoluteString containsString:@"pay"]) { return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]]; }else{ return [[UMSocialManager defaultManager] handleOpenURL:url]; } }

肝心なのは2番目のif判断の中の
[url.absoluteString containsString:@「pay」]は、これまでこの文を書いていませんでしたが、すべての微信の支払いも微信の共有も、2番目のreturnまで歩いて、共有のreturn(3番目)が行けませんでした.ここでエラーが発生すると、共有時のコールバックも行われません.
微信の支払いも微信の共有も、アプリに戻るときにcomが付きますが.tencent.xinフィールドですがurlは異なり、区別はここにあります.