博客 / 詳情

返回

iOS端如何實現微信分享鏈接與登陸

下載SDK

1.1 登錄官網
1.2 點擊這裏 下載SDK
1.3 勾選自己需要的平台,例如微信平台,然後自己寫UI,只需要勾選 如下圖:
圖片
點擊保存配置之後,然後點擊 下載 即可
圖片

導入SDK

將1.3步獲取到的SDK,直接將整個SDK資源文件拖進項目裏,如下圖:
圖片
並且勾選以下3個選項
圖片
在點擊Finish,完成導入。

添加依賴庫

圖片

圖片
點擊 “+” 號,並在彈框裏輸入以下依賴庫,進行添加

必要依賴庫:
libc++.tbd
libz.tbd
libsqlite3.tbd

配置-ObjC

在項目的Build Settings中的Other Linker Flags添加”-ObjC” ,注意大小寫
圖片

配置ATS

在項目的info.plist中添加 App Transport Security Settings,類型為字典類型給它添加一個Key:Allow Arbitrary Loads,類型為Boolean類型,值為YES;
圖片

配置URL Scheme

打開項目Info選項,找到URL Types,添加微信的URL Scheme:初始化裏的AppId就是URL SCheme,如下圖:
圖片

配置白名單

在項目的info.plist中添加LSApplicationQueriesSchemes,類型為Array然後給它添加一個需要支持的項目,類型為字符串類型:微信白名單需要增加:wechat,weixin,weixinULAPI這3項,如下圖:
圖片
注意:XCode13,iOS15上編譯,白名單隻讀取前50個配置,後面配置的都會無效

配置Universal Link

Universal Link可以自己去生成,參考蘋果官方文檔,但是為了方便用户,節省用户的時間和精力,我們也在後台為客户生成了Universal Link,如下圖:
圖片
Team id:開發者團隊的ID,可在蘋果開發者後台查看
Bundle id:開發者賬號下所有應用對應一個Bundle id,可見於項目plist文件中的Bundle identifier,務必與項目中保持一致
填寫好這些信息保存之後,就可以將生成的Universal Link用於微信開放平台上,微信初始化裏,項目裏這3個地方進行配置

(1)微信裏以 https://開頭,反斜槓結尾 這種形式填寫如下:
圖片
(2)微信初始化裏與微信開放平台一樣形式以 https://開頭,反斜槓結尾 形式填寫如下:

[platformsRegister setupWeChatWithAppId:@"wx617c77c82218ea2c" appSecret:@"c7253e5289986cf4c4c74d1ccc185fb1" universalLink:@"https://70imc.share2dlink.com/"];

(3)項目裏以applinks:XXXX形式填寫如下:添加Associated Domains(注意:證書必須開通這個功能哦)
圖片
然後雙擊Associated Domains
圖片
添加好點擊 + 號,進行UL 配置,如下:
圖片

初始化SDK

在項目默認的plist文件裏 配置ShareSDK的AppKey和AppSecret,鍵分別為 MOBAppKey 和 MOBAppSecret ,值為之前在MobTech官網開發者後台申請的AppKey和AppSecret( 注意配置之後保存好,然後看項目的Info選項裏有沒有 )
圖片

初始化微信平台

項目啓動的時候在 application:didFinishLaunchingWithOptions:中添加初始化第三方平台的方法

#import <ShareSDK/ShareSDK.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
       [ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) {

                 [platformsRegister setupWeChatWithAppId:@"wx617c77c82218ea2c" appSecret:@"c7253e5289986cf4c4c74d1ccc185fb1" universalLink:@"https://70imc.share2dlink.com/"];

        }];
          return YES;
}

構造分享參數以及調用分享方法

可在自己需要登錄的視圖頁面寫一個分享按鈕,然後在按鈕事件裏調用接口,代碼如下:

#import <ShareSDK/ShareSDK.h>
#import <ShareSDKUI/ShareSDK+SSUI.h>


- (void)viewDidLoad {

       [super viewDidLoad];
// Do any additional setup after loading the view.
       UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
       button.frame = CGRectMake(80, 100, 280, 60);
       [button setTitle:@"分享" forState:UIControlStateNormal];
       [button setBackgroundColor:[UIColor redColor]];
       [button addTarget:**self** action:**@selector**(tag)    forControlEvents:UIControlEventTouchUpInside];
       [self.view addSubview:button];
}

-(void)tag
{
//構造分享參數
NSMutableDictionary * params = [NSMutableDictionary dictionary];
[params SSDKSetupShareParamsByText:@"test"  
                                      images:@"http://download.sdk.mob.com/web/images/2019/07/30/14/1564468183056/750_750_65.12.png"
                                                              url:[NSURL URLWithString:@"http://www.mob.com/"] 
                                                            title:@"title" 
                                                           type:SSDKContentTypeWebPage];

//調用分享方法
[ShareSDK  share:SSDKPlatformTypeWechat 
          parameters:params 
 onStateChanged:^(SSDKResponseState state, NSDictionary *userData, 
SSDKContentEntity *contentEntity, NSError *error) {  
        switch (state) {
            case SSDKResponseStateSuccess:
                     NSLog(@"成功");//成功
                     break;
            case SSDKResponseStateFail:
               {
                      NSLog(@"--%@",error.description);
                      //失敗
                      break;
                }
            case SSDKResponseStateCancel:
                      //取消
                      break;

            default:
                break;
        }
}];
}

授權登錄

可在自己需要登錄的視圖頁面寫一個登錄按鈕,然後在按鈕事件裏調用接口,代碼如下:

#import <ShareSDK/ShareSDK.h>

- (void)viewDidLoad {

    [super viewDidLoad];
// Do any additional setup after loading the view.
    UIButton * button = [UIButton         buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake(80, 100, 280, 60);
    [button setTitle:@"登錄" forState:UIControlStateNormal];
    [button setBackgroundColor:[UIColor redColor]];
    [button addTarget:self action:@selector(tag)  forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
}

-(void)tag
{
     [ShareSDK authorize:SSDKPlatformTypeWechat 
                     settings:nil 
           onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) {   
           switch (state) {
                    case SSDKResponseStateSuccess:
                             NSLog(@"%@",[user.credential rawData]);
                    break;
                    case SSDKResponseStateFail:
                          {
                             NSLog(@"--%@",error.description);
                             //失敗
                             break;
                           }
                    case SSDKResponseStateCancel:
                             //用户取消授權
                             break;

                    default:
                    break;
        }
}];
}
}

如此,即可完成微信分享鏈接以及授權登錄功能!

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.