吉顺 發表於 2021-4-25 00:22:00

如何在Uni-App中集成ShareSDK

<p>ShareSDK是一种社会化分享组件,免费为App提供社会化功能,我们也推出众多平台的SDK以及插件,近期刚刚上线Uni-App的插件集成,本文讲述的是<strong>如何在Uni-App中集成ShareSDK。</strong></p>
<p>&nbsp;</p>
<p><strong>一.准备</strong></p>
<p>1.下载开发工具<strong>HBuilderX</strong></p>
<p>2.准备<strong>Uni-App</strong>项目(如果没有已经创建好的项目,可以自行创建新的项目)</p>
<p>&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/2370841/202104/2370841-20210425001043885-1612510018.png"></p>
<p>&nbsp;</p>
<p>之后选择新建Uni-App项目。打开HBuildX的文件-&gt;导入-&gt;本地项目导入创建的文件夹-&gt;创建。</p>
<p>&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/2370841/202104/2370841-20210425001057360-1389764900.png"></p>
<p>&nbsp;</p>
<p><strong>二.插件集成</strong>&nbsp;</p>
<p>1.本地插件集成</p>
<p><strong>(1)下载离线插件</strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/2370841/202104/2370841-20210425001118500-1928101982.png"></p>
<p>&nbsp;</p>
<p>将下载好的插件放在项目的nativeplugins文件夹中。(若没有则创建此目录) 目录结构如下:</p>
<p>&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/2370841/202104/2370841-20210425001131843-72141780.png"></p>
<p>&nbsp;</p>
<p><strong>(2)之后在<strong>Uni-App</strong>的“manifest.json”中选择“App原生插件配置”,点击选择本地插件,如图:</strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/2370841/202104/2370841-20210425001150985-1567047929.png"></p>
<p>2.云端插件集成</p>
<p>在Uni-App的“manifest.json”中选择“App原生插件配置”,点击选择云端插件,如图:</p>
<p><img src="https://img2020.cnblogs.com/blog/2370841/202104/2370841-20210425001214957-1118121090.png"></p>
<p>&nbsp;</p>
<p><strong>注意:</strong>本地插件和云端插件可以任选一样配置,区别在于本地插件存放到工程nativeplugins目录下的原生插件,适用于未发布到插件市场的私有原生插件进行云打包,云端插件是已经在插件市场购买或绑定试用的插件,无需下载插件到工程中,云打包时会直接合并打包原生插件到App中。不过我们提供的插件是免费的哦!</p>
<p>3.填写参数</p>
<p>在“App原生插件配置”中添加MobTech平台注册的MOBAppKey和MOBAppSecret,如何得到这2个参数,<strong>请参考:</strong></p>
<p><strong>http://bbs.mob.com/forum.php?mod=viewthread&amp;tid=8212&amp;extra=page%3D1</strong></p>
<p>以及微信、QQ、新浪、Facebook、Twitter等平台的注册平台信息。各平台注册地址,<strong>请点击:</strong></p>
<p><strong>http://www.mob.com/wiki/detailed?wiki=ios_third_party_register_process&amp;id=14</strong></p>
<p><img src="https://img2020.cnblogs.com/blog/2370841/202104/2370841-20210425001252256-278791999.png"></p>
<p>&nbsp;</p>
<p>并在“App常用其他设置”中的“iOS设置”中填写URL Scheme,以及白名单等信息,具体每个平台如何配置,请参考&nbsp;原生文档第4点配置Xcode项目这块。</p>
<p>&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/2370841/202104/2370841-20210425001308397-76830141.png"></p>
<p>&nbsp;</p>
<p><strong>iOS平台相关配置</strong></p>
<p>微信以及qq要求用户在新版sdk中填写universalLink,所以需要在应用中配置通用链接,需要在manifest.json的源码视图添"App-plus"-&gt;"distribute"-&gt;"ios"下,添加如下代码:</p>
<p><img src="https://img2020.cnblogs.com/blog/2370841/202104/2370841-20210425001329422-1032806384.png"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>三.接口调用</strong></p>
<p>1.在index.vue中编写代码,包括页面和点击方法。</p>
<p><img src="https://img2020.cnblogs.com/blog/2370841/202104/2370841-20210425001350383-1558749495.png"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>2.接口</p>
<p><strong>首先需要添加(必要):</strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">const</span> modal = uni.requireNativePlugin(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">modal</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">const</span> pluginMobShare = uni.requireNativePlugin(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">mob-sharesdk</span><span style="color: rgba(128, 0, 0, 1)">'</span>);</pre>
</div>
<p><strong>(1)generalShare() 直接分享方法接口</strong></p>
<p>可传参数说明:</p>
<div class="cnblogs_code">
<pre>String PLATNAME = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">platName</span><span style="color: rgba(128, 0, 0, 1)">"</span>;          <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">平台名</span>
String MOB_APPKEY = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mobAppkey</span><span style="color: rgba(128, 0, 0, 1)">"</span>;       <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">MobSDK的appkey</span>
String MOB_SECRET = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mobSecret</span><span style="color: rgba(128, 0, 0, 1)">"</span>;       <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">MobSDK的appSecret</span>
String PLAT_APPKEY = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">platAppkey</span><span style="color: rgba(128, 0, 0, 1)">"</span>;   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">平台的appkey</span>
String PLAT_APPSECRET = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">platAppSecret</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">平台的appsecret</span>
String PLAT_REDIRECTURL = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">platRedirectUrl</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">平台的回调地址</span>
<span style="color: rgba(0, 0, 0, 1)">
String PLAT_SHAREBYAPPCLIENT </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">platShareByAppClient</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">平台的是否通过客户端分享</span>
String PLAT_BYPASSAPPROVAL = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">platBypassApproval</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">平台的是否绕过审核</span>
<span style="color: rgba(0, 0, 0, 1)">
String TEXT </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">text</span><span style="color: rgba(128, 0, 0, 1)">"</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">文本</span>
String TITLE = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">title</span><span style="color: rgba(128, 0, 0, 1)">"</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">标题</span>
String URL = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">url</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">链接地址</span>
String IMAGE_URL = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">imageUrl</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">网络图片地址</span>
SHARETYPE = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">shareType</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">分享类型</span>
String TITLE_URL = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">titleUrl</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">QQ平台需要的参数</span>
String IMAGE_PATH = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">imagePath</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">本地图片地址</span>
String MUSIC_URL = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">musicUrl</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">音乐链接地址</span>
String SITE = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">site</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">QQ需要的参数</span>
SITE_URL = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">siteUrl</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">QQ需要的参数</span>
FILE_PATH = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">filePath</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">文件本地路径</span></pre>
</div>
<p>返回类型</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">state : number类型 状态 1、成功,2、失败,3、取消
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">userData:对象类型, 用户信息
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">contentEtitiy: 对象类型, 内容实体
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">error:对象类型,错误信息</span>
<span style="color: rgba(0, 0, 0, 1)">{
state: </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
userData:{}
contentEtitiy:{}
error:{}
}</span></pre>
</div>
<p>例子调用:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">mobShareWebpage() {
                pluginMobShare.generalShare({
                  platName: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">24</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                  mobAppkey: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">moba0b0c0d0</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                  mobSecret: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">5713f0d88511f9f4cf100cade0610a34</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                  text: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">text</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                  title: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">title</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                  url: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">http://wiki.mob.com/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                  imageUrl: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">http://img1.2345.com/duoteimg/qqTxImg/2012/04/09/13339485237265.jpg</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                  shareType: </span><span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,
                }, result </span>=&gt;<span style="color: rgba(0, 0, 0, 1)"> {
                  </span><span style="color: rgba(0, 0, 255, 1)">const</span> msg =<span style="color: rgba(0, 0, 0, 1)"> JSON.stringify(result);
                  modal.toast({
                        message: msg,
                        duration: </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)"> ,
                  });

                });
                  </span><span style="color: rgba(0, 0, 255, 1)">switch</span><span style="color: rgba(0, 0, 0, 1)"> (result.type) {
                        </span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">onComplete</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
                            console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">callback---onComplete--</span><span style="color: rgba(128, 0, 0, 1)">"</span> +<span style="color: rgba(0, 0, 0, 1)"> result.onCompleteResult);
                            </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                        </span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">onError</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
                            console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">callback---onError--</span><span style="color: rgba(128, 0, 0, 1)">"</span> +<span style="color: rgba(0, 0, 0, 1)"> result.onErrorResult);
                            </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                        </span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">onCancel</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
                            console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">callback---onCancel--</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
                            </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                }
            }</span></pre>
</div>
<p><strong>(2)authorize()授权方法接口</strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">参数说明:platName: 平台号
mobAppkey: 申请的MobSDK的appkey
mobSecret: 申请的MobSDK的secret</span></pre>
</div>
<p>iOS返回:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">state : number类型 状态 1、成功,2、失败,3、取消
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">userData:对象类型, 用户信息
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">error:对象类型,错误信息</span>
<span style="color: rgba(0, 0, 0, 1)">{
state: </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
userData:{}
error:{}
}</span></pre>
</div>
<p>例子调用</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">mobAuthorize() {
                pluginMobShare.authorize({
                  platName: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">24</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                  mobAppkey: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">moba0b0c0d0</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                  mobSecret: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">5713f0d88511f9f4cf100cade0610a34</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                }, result </span>=&gt;<span style="color: rgba(0, 0, 0, 1)"> {
                  </span><span style="color: rgba(0, 0, 255, 1)">const</span> msg =<span style="color: rgba(0, 0, 0, 1)"> JSON.stringify(result);
                  modal.toast({
                        message: msg,
                        duration: </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)"> ,
                  });

                });
                  </span><span style="color: rgba(0, 0, 255, 1)">switch</span><span style="color: rgba(0, 0, 0, 1)"> (result.type) {
                        </span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">onComplete</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
                            console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">callback---onComplete--</span><span style="color: rgba(128, 0, 0, 1)">"</span> +<span style="color: rgba(0, 0, 0, 1)"> result.onCompleteResult);
                            </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                        </span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">onError</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
                            console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">callback---onError--</span><span style="color: rgba(128, 0, 0, 1)">"</span> +<span style="color: rgba(0, 0, 0, 1)"> result.onErrorResult);
                            </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                        </span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">onCancel</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
                            console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">callback---onCancel--</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
                            </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                }
            }</span></pre>
</div>
<p><strong>(3)cancelauthorize() 取消授权</strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">参数说明:
platName: 平台号
mobAppkey: 申请的MobSDK的appkey
mobSecret: 申请的MobSDK的secret</span></pre>
</div>
<p>返回类型:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">error:取消授权失败返回信息</span>
<span style="color: rgba(0, 0, 0, 1)">{
error:{}
}</span></pre>
</div>
<p>例子调用</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">mobCancelAuthorize() {
                pluginMobShare.cancelauthorize({
                  platName: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">24</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                  mobAppkey: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">moba0b0c0d0</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                  mobSecret: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">5713f0d88511f9f4cf100cade0610a34</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                }, result </span>=&gt;<span style="color: rgba(0, 0, 0, 1)"> {
                  </span><span style="color: rgba(0, 0, 255, 1)">const</span> msg =<span style="color: rgba(0, 0, 0, 1)"> JSON.stringify(result);
                  modal.toast({
                        message: msg,
                        duration: </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)"> ,
                  });

                });
                  </span><span style="color: rgba(0, 0, 255, 1)">switch</span><span style="color: rgba(0, 0, 0, 1)"> (result.type) {
                        </span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">onComplete</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
                            console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">callback---onComplete--</span><span style="color: rgba(128, 0, 0, 1)">"</span> +<span style="color: rgba(0, 0, 0, 1)"> result.onCompleteResult);
                            </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                        </span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">onError</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
                            console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">callback---onError--</span><span style="color: rgba(128, 0, 0, 1)">"</span> +<span style="color: rgba(0, 0, 0, 1)"> result.onErrorResult);
                            </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                }
            }</span></pre>
</div>
<p><strong>(4)getUserInfo() 获取用户信息</strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">参数说明:
platName: 平台号
mobAppkey: 申请的MobSDK的appkey
mobSecret: 申请的MobSDK的secret</span></pre>
</div>
<p>返回参数</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">state : number类型 状态 1、成功,2、失败,3、取消
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">userData:对象类型, 用户信息
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">error:对象类型,错误信息</span>
<span style="color: rgba(0, 0, 0, 1)">{
state: </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
userData:{}
error:{}
}</span></pre>
</div>
<p>例子调用</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">mobgetUserInfo() {
                pluginMobShare.getUserInfo({
                  platName: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">24</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                  mobAppkey: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">moba0b0c0d0</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                  mobSecret: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">5713f0d88511f9f4cf100cade0610a34</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                }, result </span>=&gt;<span style="color: rgba(0, 0, 0, 1)"> {
                  </span><span style="color: rgba(0, 0, 255, 1)">const</span> msg =<span style="color: rgba(0, 0, 0, 1)"> JSON.stringify(result);
                  modal.toast({
                        message: msg,
                        duration: </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)"> ,
                  });

                });
                  </span><span style="color: rgba(0, 0, 255, 1)">switch</span><span style="color: rgba(0, 0, 0, 1)"> (result.type) {
                        </span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">onComplete</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
                            console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">callback---onComplete--</span><span style="color: rgba(128, 0, 0, 1)">"</span> +<span style="color: rgba(0, 0, 0, 1)"> result.onCompleteResult);
                            </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                        </span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">onError</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
                            console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">callback---onError--</span><span style="color: rgba(128, 0, 0, 1)">"</span> +<span style="color: rgba(0, 0, 0, 1)"> result.onErrorResult);
                            </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                        </span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">onCancel</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
                            console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">callback---onCancel--</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
                            </span><span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
                }
            }</span></pre>
</div>
<p><strong>四.调试</strong></p>
<p>1.将插件放入Uni-App项目中调试</p>
<p><strong>(1) 打自定义基座</strong></p>
<p>&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/2370841/202104/2370841-20210425002028591-1704769920.png"></p>
<p>&nbsp;</p>
<p>将证书等信息添加进去,等待云打包完成后。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/2370841/202104/2370841-20210425002038540-1325866663.png"></p>
<p>&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/2370841/202104/2370841-20210425002054121-52497595.png"></p>
<p>&nbsp;</p>
<p>选中定义基座,运行这个项目,进行调试。</p>
<div class="cnblogs_code">
<pre>SinaWeibo <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
TencentWeibo </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
Douban </span><span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">
QZone </span><span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">
Renren </span><span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">
KaiXin </span><span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">
Facebook </span><span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">
Twitter </span><span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)">
Evernote </span><span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">
FourSquare </span><span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">
GooglePlus </span><span style="color: rgba(128, 0, 128, 1)">14</span><span style="color: rgba(0, 0, 0, 1)">
Instagram </span><span style="color: rgba(128, 0, 128, 1)">15</span><span style="color: rgba(0, 0, 0, 1)">
LinkedIn </span><span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">
Tumblr </span><span style="color: rgba(128, 0, 128, 1)">17</span><span style="color: rgba(0, 0, 0, 1)">
Email </span><span style="color: rgba(128, 0, 128, 1)">18</span><span style="color: rgba(0, 0, 0, 1)">
Wechat </span><span style="color: rgba(128, 0, 128, 1)">22</span><span style="color: rgba(0, 0, 0, 1)">
WechatMoments </span><span style="color: rgba(128, 0, 128, 1)">23</span><span style="color: rgba(0, 0, 0, 1)">
QQ </span><span style="color: rgba(128, 0, 128, 1)">24</span><span style="color: rgba(0, 0, 0, 1)">
Instapaper </span><span style="color: rgba(128, 0, 128, 1)">25</span><span style="color: rgba(0, 0, 0, 1)">
Pocket </span><span style="color: rgba(128, 0, 128, 1)">26</span><span style="color: rgba(0, 0, 0, 1)">
YouDao </span><span style="color: rgba(128, 0, 128, 1)">27</span><span style="color: rgba(0, 0, 0, 1)">
Pinterest </span><span style="color: rgba(128, 0, 128, 1)">30</span><span style="color: rgba(0, 0, 0, 1)">
Flickr </span><span style="color: rgba(128, 0, 128, 1)">34</span><span style="color: rgba(0, 0, 0, 1)">
Dropbox </span><span style="color: rgba(128, 0, 128, 1)">35</span><span style="color: rgba(0, 0, 0, 1)">
VKontakte </span><span style="color: rgba(128, 0, 128, 1)">36</span><span style="color: rgba(0, 0, 0, 1)">
WechatFavorite </span><span style="color: rgba(128, 0, 128, 1)">37</span><span style="color: rgba(0, 0, 0, 1)">
Yixin </span><span style="color: rgba(128, 0, 128, 1)">38</span><span style="color: rgba(0, 0, 0, 1)">
YixinMoments </span><span style="color: rgba(128, 0, 128, 1)">39</span><span style="color: rgba(0, 0, 0, 1)">
Mingdao </span><span style="color: rgba(128, 0, 128, 1)">41</span><span style="color: rgba(0, 0, 0, 1)">
Line </span><span style="color: rgba(128, 0, 128, 1)">42</span><span style="color: rgba(0, 0, 0, 1)">
WhatsApp </span><span style="color: rgba(128, 0, 128, 1)">43</span><span style="color: rgba(0, 0, 0, 1)">
KakaoTalk </span><span style="color: rgba(128, 0, 128, 1)">44</span><span style="color: rgba(0, 0, 0, 1)">
KakaoStory </span><span style="color: rgba(128, 0, 128, 1)">45</span><span style="color: rgba(0, 0, 0, 1)">
FacebookMessenger </span><span style="color: rgba(128, 0, 128, 1)">46</span><span style="color: rgba(0, 0, 0, 1)">
Bluetooth </span><span style="color: rgba(128, 0, 128, 1)">48</span><span style="color: rgba(0, 0, 0, 1)">
Alipay </span><span style="color: rgba(128, 0, 128, 1)">50</span><span style="color: rgba(0, 0, 0, 1)">
AlipayMoments </span><span style="color: rgba(128, 0, 128, 1)">51</span><span style="color: rgba(0, 0, 0, 1)">
Dingding </span><span style="color: rgba(128, 0, 128, 1)">52</span><span style="color: rgba(0, 0, 0, 1)">
Youtube </span><span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">
Meipai </span><span style="color: rgba(128, 0, 128, 1)">54</span><span style="color: rgba(0, 0, 0, 1)">
Cmcc </span><span style="color: rgba(128, 0, 128, 1)">55</span><span style="color: rgba(0, 0, 0, 1)">
Reddit </span><span style="color: rgba(128, 0, 128, 1)">56</span><span style="color: rgba(0, 0, 0, 1)">
Telecom </span><span style="color: rgba(128, 0, 128, 1)">57</span><span style="color: rgba(0, 0, 0, 1)">
Douyin </span><span style="color: rgba(128, 0, 128, 1)">58</span><span style="color: rgba(0, 0, 0, 1)">
Accountkit </span><span style="color: rgba(128, 0, 128, 1)">59</span><span style="color: rgba(0, 0, 0, 1)">
备注:关于参数SHARETYPE平台号对照表

Auto </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
Text </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
Image </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
Webpage </span><span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">
App </span><span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">
Audio </span><span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">
Video </span><span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">
File </span><span style="color: rgba(128, 0, 128, 1)">7</span></pre>
</div>
<p>ShareSDK是一种社会化分享组件,免费为App提供社会化功能,我们也推出众多平台的SDK以及插件,近期刚刚上线Uni-App的插件集成,本文讲述的是<strong>如何在Uni-App中集成ShareSDK。</strong></p>
<p>自此,整个流程就走完了。如有问题,可以联系官方技术支持:4006852216</p>
<p>备注:关于参数platName平台号对照表</p><br><br>
来源:https://www.cnblogs.com/mobtech/p/14698761.html
頁: [1]
查看完整版本: 如何在Uni-App中集成ShareSDK