分享插件开发经验总结,希望对正在摸索中的朋友有所帮助

折腾了好几天的分享插件开发终于有点成果了,现打包发布的app已可以成功分享到QQ,微信,新浪微博,太不容易了,以下是一些经验教训,希望对正在探索分享插件开发的朋友有所帮助。

入门资料参考:
Hbuilder 配置第三方分享
http://ask.dcloud.net.cn/docs#http://ask.dcloud.net.cn/article/27

分享插件开发指南
http://ask.dcloud.net.cn/article/36

html5 分享接口
http://www.html5plus.org/doc/zh_cn/share.html

重大问题:
1:Android包名和签名问题,在以上分享开放平台注册应用时都需要填写这个东西, 根据Android包名获取android签名,工具下载地址https://github.com/mobileresearch/weibo_android_sdk/blob/master/app_signatures.apk
安装到Android手机上进行签名生成,使用前一定要在该手机上安装打包好的app,否则该工具无法生成签名。

2:新浪微博回调地址问题
2.1 Hbuilder打包配置文件中,回调地址属性是redirect_uri 不是 redirect_url,平时写地址命名为url习惯了,这里可要注意了。
2.2 新浪开放平台配置的授权回调页和取消授权回调页,我配置为同一个请求:
http://域名/app/userShare/shareCallBack,打包manifest.json 文件中redirect_uri也配置为这个就可以了。

3:分享网络图片问题
最纠结的也就是如何分享网络图片了,IOS不存在问题,Android存在以下问题:
3.1 分享到QQ,微信,如果网络图片太大了,可能会分享失败,有两种解决办法1下载图片到本地,2进行图片裁剪(我们是采用阿里云存储图片的,网络路径后可以加参数进行图片裁剪,可能对大多数朋友不大实用),我使用的第2种办法,分享发送时图片参数:
msg.thumbs=[裁剪后的网络路径];
msg.pictures=[原网络路径];

3.2 分享到新浪微博完全就不支持网络路径,解决办法,下载图片到本地,然后再分享,代码参考
http://ask.dcloud.net.cn/article/183

4:微信分享一闪关闭并回到APP
Android包名与签名不一致导致,一定要先打包好正式的APP,然后再用签名生成工具生成签名,并配置到对应开放平台。

遗留问题,希望专家们能给出解决方案!!
1:分享到新浪微博无法分享链接,发送分享接口中设置msg.href='http://ask.dcloud.net.cn/链接',打开的新浪微博应用也无法显示该链接,IOS,Android都存在该问题。

2:Android分享到新浪微博时,手机上(红米)已经安装过新浪微博应用,就是无法弹出新浪微博应用进行文字输入(IOS可以),只能默认分享。

以下是分享相关的js代码,后期添加
 

<!DOCTYPE HTML>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>simonDemo</title>
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta name="description" content="">
    <meta name="keywords" content=",,">
    <meta name="author" content="Simon Sun">
    <style></style>
    <script></script>
</head>
<body>
    <div class="one" onclick="one()">
    QQ
    </div>
 
    <div class="two" onclick="two()">
    
    </div>
    
    <div class="four" onclick="four()">
    QQQQ
    </div>
</body>
<script type="text/javascript">  
        //QQ    
        function one(){  
            var share1=new ShareTip();    
            share1.sharetoqqzone(  
                "QQ",  
                "http://m.vickeynce.com",  
                "http://img.tiantianshangke.com/img/video/1470985253.jpg"  
            );  
        }  
        //  
        function two(){  
            var share1=new ShareTip();    
            share1.sharetosina(  
                "",  
                "http://m.vickeynce.com",  
                "http://img.tiantianshangke.com/img/video/1470985253.jpg"  
            );  
        }  
        var ShareTip = function()  {};  
      
            //    
            ShareTip.prototype.sharetosina=function(title,url,picurl)    
            {    
             var sharesinastring='http://v.t.sina.com.cn/share/share.php?title='+title+'&url='+url+'&content=utf-8&sourceUrl='+url+'&pic='+picurl;    
             window.open(sharesinastring,'newwindow','height=400,width=400,top=100,left=100');    
            }    
            //QQ    
            ShareTip.prototype.sharetoqqzone=function(title,url,picurl)    
            {    
             var shareqqzonestring='http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?summary='+title+'&url='+url+'&pics='+picurl;    
             window.open(shareqqzonestring,'newwindow','height=400,width=400,top=100,left=100');    
            }    
    </script>  
    <script type="text/javascript">  
      
          
    // //QQ  
    //     function one(){  
    //         console.log('one')  
    //         location.href= 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url =http://m.vickeynce.com&summary=&site=vickey&pics=http://img.tiantianshangke.com/img/aq//h5_1470882133.jpg'  
              
    //     }  
    //     //  
    //     function two(){  
    //         console.log('two')  
    //         location.href= 'http://service.weibo.com/share/share.php?url=http://m.vickeynce.com&appkey = ;vickey&title=&pic=http://img.tiantianshangke.com/img/aq//h5_1470882133.jpg';  
              
              
    //     }  
  
        //QQQQ  
        function four(){  
            console.log('four');  
            window.open('http://connect.qq.com/widget/shareqq/index.html?url=http://www.sevenphp.com/test/test.html&desc=&title=&summary=&pics=&flash=&site=&callback="  title="QQ','height=400,width=400,top=100,left=100')  
        }  
      //QQQQ  
    // function four(){  
    //     console.log('four');  
    //     window.open('http://connect.qq.com/widget/shareqq/index.html?url=http://www.sevenphp.com/test/test.html&desc=&title=&summary=&pics=&flash=&site=&callback="  title="QQ')  
    // }  
    </script> 
</html>