[iOS初級チュートリアル1]ソーシャルシェアリングプラクティス

[iOS初級チュートリアル1]ソーシャルシェアリングプラクティス

1.はじめに

        ソーシャルシェアリングとは、そのシェアリング機能に基づいて、情報の入力と出力がネットワーク化され、組織の普及を促進することを意味します。ブログ、マイクロブログ、WIKI、ソーシャルネットワーク、コンテンツコミュニティなどは、ソーシャルメディアの一般的な形式です。中国では過去2年間で、Qzone、Sina Weibo、TencentWeiboがソーシャルシェアリングの伝達量で最も勢いを増しています。

[iOS初級チュートリアル1]ソーシャルシェアリングプラクティス  [iOS初級チュートリアル1]ソーシャルシェアリングプラクティス  [iOS初級チュートリアル1]ソーシャルシェアリングプラクティス

      アプリケーション自体にソーシャル共有を追加する機能は複雑ではありません。面倒なのは、さまざまな共有プラットフォームをさまざまなSDKに接続する必要があることです。たとえば、WeChat、QQ、Weiboの共有をサポートするには、3つのプラットフォームを共有する必要があります。 SDK、QQSDK、WeiboSDKへのアクセスは非常に面倒です。したがって、アプリケーションでソーシャル共有機能をすばやく有効にする必要がある場合、最速の方法は、サードパーティの統合SDKを使用してアクセスすることです。Umengソーシャル共有プラットフォームは、この種の非常に優れたサービスを提供します。

      U-Shareソーシャルシェアリングプラットフォームの公式ウェブサイトは次のとおりです。

https://www.umeng.com/social

簡単に要約すると、U-Shareプラットフォームは次の機能を提供します。

1.ワンクリック共有

2.ワンキーウェイクアップとリフレッシュ

3.マーケティングの核分裂効果の追跡

4.共有ページを自由にカスタマイズします

U-Shareツールへの全体的なアクセスも非常に簡単で、プロセスは次のとおりです。

[iOS初級チュートリアル1]ソーシャルシェアリングプラクティス

このチュートリアルでは、Youmengソーシャル共有サービスプラットフォームを組み合わせて、アプリケーションに共有機能をすばやく追加する方法を完全に紹介します。あなたは得るでしょう:

1.技術的実践経験の社会的共有

2. Youmengプラットフォームの助けを借りて、アプリケーションのソーシャル共有機能をすばやく実現します

3.共有コンポーネントをカスタマイズする機能

4.さまざまなソーシャルプラットフォームで共有するためのアカウント申請プロセス

5.待ってください...

2.Umengアプリケーションを作成します

      Youmengプラットフォームを使用してソーシャル共有機能を実現するには、最初にYoumengバックグラウンドでアプリケーションを作成する必要があります。前述のUmeng公式ウェブサイトを開きます。すでにUmengアカウントをお持ちの場合は、直接ログインできます。お持ちでない場合は、Umengアカウントを登録するだけです。ログインに成功したら、ページの[ワークベンチに入る]ボタンをクリックして、アプリケーションを作成および管理できるHouyoumeng管理のバックグラウンドに移動します。

      Umengバックエンドを初めて使用する場合、最初のステップはアプリケーションを作成することです。次の図に示すように、Umengアプリケーションの作成は非常に簡単で、プロンプトに従ってステップバイステップで選択するだけです。

[iOS初級チュートリアル1]ソーシャルシェアリングプラクティス

使用する必要のある関数を確認するだけです。アプリケーションの作成後、U-Shareバックエンドでアプリケーションを表示および管理できます。アプリケーション設定ページでAppKeyデータを表示できます。このデータは非常に重要です。UmengSDKを統合するときにこのAppKeyを使用する必要があります。以下に示すように:

[iOS初級チュートリアル1]ソーシャルシェアリングプラクティス

また、U-Shareのバックグラウンドには、アプリの共有数、共有数、収益率、新規ユーザー数などの重要な統計データが多数記録されていることがわかります。データは、ビジネスの最適化を継続するのに役立ちます。

3. YoumengSDKの取得とアクセス

      CocoaPods統合と手動統合を使用して、Umengを統合してSDKを共有する方法は2つあります。

1.統合にCocoaPodsを使用する

      CocoaPodsを使用して統合すると非常に便利です。全体として3つのステップがあります。

  • PodFileファイルを作成する
  • 依存関係を追加する
  • ポッドインストールを実行して、依存ライブラリをインストールします

まず、プロジェクトディレクトリでpod initコマンドを実行してpodfileファイルを作成し、その中に次のコードを記述します。

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'UMShareTest' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!
  pod 'UMCommon'
  pod 'UMDevice'
  pod 'UMShare/UI'
  pod 'UMShare/Social/WeChat'
  pod 'UMShare/Social/QQ' 
  pod 'UMShare/Social/Sina' 
  # Pods for UMShareTest

end

依存関係を追加する場合、UMCommonとUMDeviceは必須の依存関係です。UMShare/ UIはUIライブラリです。Youmengが提供する共有UIコンポーネントを使用する必要がある場合は、このライブラリを追加できます。WeChat、QQ、およびSinaはサードパーティの共有プラットフォームのSDKであり、必要なものを紹介できます。Youmengがサポートするサードパーティのプラットフォームは、次のドキュメントで確認できます。

https://developer.umeng.com/docs/128606/detail/193653

2.手動統合

    手動統合とは、必要なSDKを直接ダウンロードしてプロジェクトに追加し、関連する構成を実行することを意味します。CocoaPodsの統合方法と比較して、手動統合はより面倒です。まず、必要なSDKをダウンロードする必要があります。SDKは次のURLからダウンロードできます。

https://developer.umeng.com/sdk/ios

同様に、SDKをダウンロードする場合、次の図に示すように、必要な共有プラットフォームのSDKのみをダウンロードするように設定できます。

[iOS初級チュートリアル1]ソーシャルシェアリングプラクティス

ダウンロードが完了したら、解凍したSDKフォルダーをプロジェクトにドラッグするだけです。次に、Xcodeプロジェクトのビルド設定で他のリンカーフラグに-Objcパラメーターを追加します。最後に、次の図に示すように、依存するシステムライブラリを追加し、それらをLink Binary WithLibrariesで構成する必要があります。

[iOS初級チュートリアル1]ソーシャルシェアリングプラクティス

ここで構成されているシステムライブラリは、サポートされている共有プラットフォームが異なるため、わずかに異なる場合があることに注意してください。対応する共有プラットフォーム用に構成する必要のあるシステムライブラリは、次のドキュメントにあります。

https://developer.umeng.com/docs/128606/detail/193653

第四に、三者プラットフォームの材料の準備

      これまでの準備で、UmengアプリケーションとSDKの構成は基本的に完了しましたが、共有機能に実際にアクセスする前に実行する必要のある重要な手順がまだあります。必要に応じて、さまざまなオープンプラットフォームの開発者アカウントを申請する必要があります。たとえば、WeChat、QQ、Weiboの共有操作をサポートする必要がある場合は、WeChatオープンプラットフォーム、Tencentオープンプラットフォーム、Weiboオープンプラットフォームアカウントを申請し、アプリケーションを作成する必要があります。

1.WeChatオープンプラットフォーム

      WeChatオープンプラットフォームの公式ウェブサイトは次のとおりです。

https://open.weixin.qq.com/

オープンプラットフォームに開発者アカウントを登録すると、次の図に示すように、アプリケーションを作成できます。

[iOS初級チュートリアル1]ソーシャルシェアリングプラクティス

必要な情報を入力したら、アプリケーションを作成できます。アプリケーションを構成するときは、バンドルIDセットの値がプロジェクトの構成と一致している必要があることに注意してください。アプリケーションを送信してアプリケーションを作成した後、WeChatオープンプラットフォームのレビューを待つ必要があります。レビューが完了すると、アプリケーションのAppIDとAppSecretを取得できます。これら2つのパラメーターは、共有を構成するときに使用されます。

2.Tencentオープンプラットフォーム

      WeChatオープンプラットフォームと同様に、QQ関連の共有操作をサポートするには、Tencentオープンプラットフォームでアカウントを申請する必要があります。アドレスは次のとおりです。

https://open.tencent.com/

また、アプリケーションを申請するときに、いくつかの基本情報を入力する必要があります。アプリケーションを申請した後、次の図に示すように、構成を共有するためのAppIDおよびAppKey関連のパラメーターを取得できます。

[iOS初級チュートリアル1]ソーシャルシェアリングプラクティス

他のさまざまな開発プラットフォームのアプリケーション作成および構成ロジックは基本的に同じです。特定のアプリケーションメソッドは、Umengの​​次のドキュメントにあります。

https://developer.umeng.com/docs/128606/detail/193651

5、アクセスと共有機能

     これですべての準備が整いました。東風だけが負っています。共有機能を実装するための準備がすべて完了しました。プロジェクトの構成とコードの記述を行うことができます。

1. UmengSDKとコールバック設定を初期化します

    Youmeng SDKの初期化は、共有機能を使用するための最初のステップです。ここでは、Youmengアプリケーションを初期化し、各共有プラットフォームを構成する必要があります。サンプルコードは次のとおりです。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [self configShare];
    [self configPlatform];
    return YES;
}

- (void)configShare {
    [UMConfigure initWithAppkey:@"602505af668f9e17b8aef059" channel:nil];
    [UMSocialGlobal shareInstance].universalLinkDic = @{
        @(UMSocialPlatformType_WechatSession):@"https://umplus-sdk-download.oss-cn-shanghai.aliyuncs.com/",

        @(UMSocialPlatformType_QQ):@"https://umplus-sdk-download.oss-cn-shanghai.aliyuncs.com/qq_conn/101830139"
                                                            };
}

- (void)configPlatform {
    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:@"wxdc1e388c3822c80b" appSecret:@"3baf1193c85774b3fd9d18447d76cab0" redirectURL:@"http://mobile.umeng.com/social"];
           [[UMSocialManager defaultManager] setLauchFromPlatform:(UMSocialPlatformType_WechatSession) completion:^(id userInfoResponse, NSError *error) {
           NSLog(@"setLauchFromPlatform:userInfoResponse:%@",userInfoResponse);
    }];
    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:@"1105821097"  appSecret:nil redirectURL:@"http://mobile.umeng.com/social"];

    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:@"3921700954"  appSecret:@"04b48b094faeb16683c32669824ebdad" redirectURL:@"https://sns.whalecloud.com/sina2/callback"];
}

上記のコードはAppDelegateクラスで記述されていますが、実際のアプリケーションでは、使用のタイミングに応じて初期化することもできます。上記のコードでは、configShareメソッドを使用してUmeng SDK自体を初期化および構成し、configPlatformメソッドを使用してサードパーティの共有プラットフォームを構成しています。

      また、共有リンクを介してアプリを開いた後、後続のロジックを処理するために、いくつかのAppDelegateコールバックを実装する必要があります。サンプルコードは次のとおりです。

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    BOOL res = [[UMSocialManager defaultManager] handleOpenURL:url];
    return res;
}

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
    BOOL res = [[UMSocialManager defaultManager] handleOpenURL:url options:options];
    return res;
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    BOOL res = [[UMSocialManager defaultManager] handleOpenURL:url sourceApplication:sourceApplication annotation:annotation];
    return res;
}

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
    BOOL res = [[UMSocialManager defaultManager] handleUniversalLink:userActivity options:nil];
    return res;
}

2.ホワイトリスト構成

      現在、コード構成部分は基本的に完了しています。次に、プロジェクトのinfo.plistファイルで共有するサードパーティプラットフォームをホワイトリストに登録する必要があります。LSApplicationQueriesSchemesキーをinfo.plistファイルに追加すると、その値がリストとして構成されます。各共有プラットフォームの特定のホワイトリストは次のとおりです。


<key>LSApplicationQueriesSchemes</key>
<array>
    <!-- 微信 URL Scheme 白名单-->
    <string>wechat</string>
    <string>weixin</string>
    <string>weixinULAPI</string>

 <!-- QQ、Qzone URL Scheme 白名单-->
    <string>mqqopensdklaunchminiapp</string>
    <string>mqqopensdkminiapp</string>
    <string>mqqapi</string>
    <string>mqq</string>
    <string>mqqOpensdkSSoLogin</string>
    <string>mqqconnect</string>
    <string>mqqopensdkdataline</string>
    <string>mqqopensdkgrouptribeshare</string>
    <string>mqqopensdkfriend</string>
    <string>mqqopensdkapi</string>
    <string>mqqopensdkapiV2</string>
    <string>mqqopensdkapiV3</string>
    <string>mqqopensdkapiV4</string>
    <string>mqzoneopensdk</string>
    <string>wtloginmqq</string>
    <string>wtloginmqq2</string>
    <string>mqqwpa</string>
    <string>mqzone</string>
    <string>mqzonev2</string>
    <string>mqzoneshare</string>
    <string>wtloginqzone</string>
    <string>mqzonewx</string>
    <string>mqzoneopensdkapiV2</string>
    <string>mqzoneopensdkapi19</string>
    <string>mqzoneopensdkapi</string>
    <string>mqqbrowser</string>
    <string>mttbrowser</string>
    <string>tim</string>
    <string>timapi</string>
    <string>timopensdkfriend</string>
    <string>timwpa</string>
    <string>timgamebindinggroup</string>
    <string>timapiwallet</string>
    <string>timOpensdkSSoLogin</string>
    <string>wtlogintim</string>
    <string>timopensdkgrouptribeshare</string>
    <string>timopensdkapiV4</string>
    <string>timgamebindinggroup</string>
    <string>timopensdkdataline</string>
    <string>wtlogintimV1</string>
    <string>timapiV1</string>

    <!-- 新浪微博 URL Scheme 白名单-->
    <string>sinaweibohd</string>
    <string>sinaweibo</string>
    <string>sinaweibosso</string>
    <string>weibosdk</string>
    <string>weibosdk2.5</string>

    <!-- 支付宝 URL Scheme 白名单-->
    <string>alipay</string>
    <string>alipayshare</string>

    <!-- 钉钉 URL Scheme 白名单-->
      <string>dingtalk</string>
      <string>dingtalk-open</string>

    <!-- 企业微信-->
      <string>wxwork</string>
    <string>wxworkdebug</string>
    <string>wxworkrdm</string>
    <string>wxworkrelease</string>

      <!--抖音-->
      <string>douyinopensdk</string>
    <string>douyinsharesdk</string>
    <string>snssdk1128</string>

    <!--Linkedin URL Scheme 白名单-->
    <string>linkedin</string>
    <string>linkedin-sdk2</string>
    <string>linkedin-sdk</string>

    <!-- 易信 URL Scheme 白名单-->
    <string>yixin</string>
    <string>yixinopenapi</string>

    <!-- instagram URL Scheme 白名单-->
    <string>instagram</string>

    <!-- whatsapp URL Scheme 白名单-->
    <string>whatsapp</string>

    <!-- line URL Scheme 白名单-->
    <string>line</string>

    <!-- Facebook URL Scheme 白名单-->
    <string>fbapi</string>
    <string>fb-messenger-api</string>
    <string>fb-messenger-share-api</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>

    <!-- Kakao URL Scheme 白名单-->  
    <!-- 注:以下第一个参数需替换为自己的kakao appkey--> 
    <!-- 格式为 kakao + "kakao appkey"-->    
    <string>kakaofa63a0b2356e923f3edd6512d531f546</string>
    <string>kakaokompassauth</string>
    <string>storykompassauth</string>
    <string>kakaolink</string>
    <string>kakaotalk-4.5.0</string>
    <string>kakaostory-2.9.0</string>

   <!-- pinterest URL Scheme 白名单-->  
    <string>pinterestsdk.v1</string>

   <!-- Tumblr URL Scheme 白名单-->  
    <string>tumblr</string>

   <!-- 印象笔记 -->
    <string>evernote</string>
    <string>en</string>
    <string>enx</string>
    <string>evernotecid</string>
    <string>evernotemsg</string>

   <!-- 有道云笔记-->
    <string>youdaonote</string>
    <string>ynotedictfav</string>
    <string>com.youdao.note.todayViewNote</string>
    <string>ynotesharesdk</string>

   <!-- Google+-->
    <string>gplus</string>

   <!-- Pocket-->
    <string>pocket</string>
    <string>readitlater</string>
    <string>pocket-oauth-v1</string>
    <string>fb131450656879143</string>
    <string>en-readitlater-5776</string>
    <string>com.ideashower.ReadItLaterPro3</string>
    <string>com.ideashower.ReadItLaterPro</string>
    <string>com.ideashower.ReadItLaterProAlpha</string>
    <string>com.ideashower.ReadItLaterProEnterprise</string>

   <!-- VKontakte-->
    <string>vk</string>
    <string>vk-share</string>
    <string>vkauthorize</string>

   <!-- Twitter-->
    <string>twitter</string>
    <string>twitterauth</string>

</array>

Xocdeでデフォルトで開かれるinfo.plistファイルは、次のようにplistブラウジングモードで開かれることに注意してください。

[iOS初級チュートリアル1]ソーシャルシェアリングプラクティス

次の図に示すように、テキストモードで開き、必要なコードをコピーできます。

[iOS初級チュートリアル1]ソーシャルシェアリングプラクティス

3.URLスキームを構成します

      ホワイトリストを構成する目的は、アプリケーションが共有操作のためにサードパーティのアプリを開くことができるようにすることです。URLスキームを構成する機能は、共有操作が完了すると、サードパーティのアプリがアプリを再度起動して後続のロジックのためにアプリに戻ります。

      次の図に示すように、プロジェクトのInfoプロジェクトでURLタイプを構成します。

[iOS初級チュートリアル1]ソーシャルシェアリングプラクティス

上の図に示すように、WeChatとQQのURLスキームのみを構成します。構成する場合、プラットフォームごとにルールが異なります。たとえば、WeChatは次のとおりです。

WeChatオープンプラットフォームのwx +アプリケーションappKey

各共有プラットフォームの特定の構成ルールについては、次のドキュメントを参照してください。

https://developer.umeng.com/docs/128606/detail/193653#h3--sso-12

6、共有操作を実行します

      前の作業が完了した後、共有操作は非常に簡単です。テキスト共有を例にとると、USocialMessageObjectオブジェクトを作成するだけで済みます。サンプルコードは次のとおりです。

- (void)shareText:(UMSocialPlatformType)type {
    UMSocialMessageObject *object = [[UMSocialMessageObject alloc] init];
    object.text = @"title";
    [[UMSocialManager defaultManager] shareToPlatform:type messageObject:object currentViewController:self completion:^(id result, NSError *error) {
        NSLog(@"%@",error);
    }];
}

同様に、さまざまなパラメータを使用して、Webページ、アプレット、グラフィック、ビデオ、音楽などのデータを共有することもできます。具体的な共有方法については、次のドキュメントを参照してください。

https://developer.umeng.com/docs/128606/detail/193655#h2-u5206u4EABu7F51u9875u94FEu63A51

      上記のメソッドを呼び出して共有することは純粋なビジネスロジックレベルであり、必要に応じて共有UIをカスタマイズできます。UShareUIライブラリにアクセスできる場合は、いくつかの簡単な構成で共有機能にすばやくアクセスできます。サンプルコードは次のとおりです。

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [UMSocialShareUIConfig shareInstance].sharePageScrollViewConfig.shareScrollViewBackgroundColor = [UIColor greenColor];

}

- (IBAction)share:(id)sender {
    [UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
        [self shareText:platformType];
    }];
}

- (void)shareText:(UMSocialPlatformType)type {
    UMSocialMessageObject *object = [[UMSocialMessageObject alloc] init];
    object.text = @"title";
    [[UMSocialManager defaultManager] shareToPlatform:type messageObject:object currentViewController:self completion:^(id result, NSError *error) {
        NSLog(@"%@",error);
    }];
}

@end

上記のコードを実行すると、効果が次の図に示されます。

[iOS初級チュートリアル1]ソーシャルシェアリングプラクティス

この共有パネルのコンポーネントには、開発者がカスタマイズして使用するための公開されたインターフェイスがあり、アクセスは非常に便利です。

おすすめ

転載: blog.51cto.com/11643026/2664649