AndroidStudio打包HBuilder含分享项目

最近一个App项目是用HBuilder+VS开发的,需要在AndroidStudio打包,至于为什么不直接用HBuilder打的包,我还不是很清楚。。

打包
先说说打包,直接上个官链:http://ask.dcloud.net.cn/article/924
讲的很清楚,我找了很久才找到。。

申请appid和appsecret
一般App免不了调用第三方接口(以微信分享为例)
HBuilder集成了分享功能,在配置文件中填入从微信开放平台申请来的appid和appsecret。

HBuilder配置文件

微信开发平台申请

我只是想说应用签名和应用包名填的时候你真的只要注意格式就OK了,通过审核之后还是可以修改的,重要的是早早拿到appid和appsecret便于测试。
应用签名注意要去掉MD5的”:“,且字母全小写。

生成签名
关于AndroidStudio生成签名文件的问题,推荐链接:https://www.cnblogs.com/benchao/p/6007304.html

创建签名文件

点击OK之后你就创建了一个新的jks文件,在你刚才选择的路径下。
根据这个签名文件,你可以打包App了,为了避免不必要的安装错误,不如就v1,v2全都勾上吧。

生成签名

如果生成报错
报错
可以在app\build.gradle文件android里添加如下代码

    lintOptions{
        checkReleaseBuilds false
        abortOnError false
    }

查看签名
方法1:新建.bat文件
keytool -v -list -keystore 文件名.jks
pause
将jks文件和bat文件放在同一文件夹运行,可以看到release版的签名。

方法2:签名生成工具,用于获取安装到手机的第三方应用签名的apk包
https://res.wx.qq.com/open/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android221cbf.apk

分享配置
HBulider分享插件开发指南,官链:http://ask.dcloud.net.cn/article/36
Android平台分享插件配置,官链:http://ask.dcloud.net.cn/article/210

说说我自己是怎么写的吧:
1.首先要在plusready事件之后获取分享列表,获取分享服务列表可以调用plus.share.getServices()接口。

    var shares=null;
    function plusReady(){
        plus.share.getServices( function(s){
            shares={};
            for(var i in s){
                var t=s[i];
                shares[t.id]=t;
            }
        }, function(e){
            alert("获取分享服务列表失败");
        } );
    }
    if(window.plus){
        plusReady();
    }else{
        document.addEventListener("plusready",plusReady,false);
    }

2.我的分享列表。

<div id="share_div" class="box mui-popover mui-popover-action mui-popover-bottom">
    <div>分享至</div>
    <ul>
        <li id='WXSceneSession' title='weixin' onclick="shareAction(this)">
            <a><img src="../../images/healthNews/bt_share_wechat.png" /><br />微信</a>
        </li>
        <li id='WXSceneTimeline' title='weixin' onclick="shareAction(this)">
            <a><img src="../../images/healthNews/bt_share_moments.png" /><br />朋友圈</a>
        </li>
        <li id='' title='qq' onclick="shareAction(this)">
            <a><img src="../../images/healthNews/bt_share_QQ.png" /><br />QQ</a>
        </li>
        <li>
            <a><img src="../../images/healthNews/bt_share_QQzone.png" /><br />QQ空间</a>
        </li>
        <li>
            <a><img src="../../images/healthNews/bt_share_microblog.png" /><br />微博</a>
        </li>
        <li>
            <a><img src="../../images/healthNews/bt_share_more.png" /><br />更多</a>
        </li>
    </ul>
</div>

3.实现分享点击事件,在分享之前需要对分享平台是否授权过进行判断,如果已经授权则可直接分享消息,如没有授权则需要调用已保存的分享对象的“authorize”接口对客户端进行授权。

    function shareAction(e) {
        var sb={s:shares[e.title],x:e.id};
        if(!sb||!sb.s){
            alert("无效的分享服务");
            return;
        }
        var msg={href:"http://www.baidu.com",
            title:"分享测试",
            content:"我是一个可爱的小测试呀~",
            thumbs:["../../images/appicon/ic_desktop.png"],
            extra:{scene:sb.x}};
        if ( sb.s.authenticated ) {
            shareMessage(msg,sb.s);
        } else {
            alert("未授权");
            sb.s.authorize( function(){
                    shareMessage(msg,sb.s);
                },function(e){
                    alert("认证授权失败");                        
                }
            );
        }
    }
    function shareMessage(msg,s){
        s.send( msg, function(){
            alert("分享到"+s.description+"成功!");                   
        }, function(e){
            alert("分享到"+s.description+"失败!"+JSON.stringify(e));
        } );
    }

4.Android平台分享插件补充。

添加文件夹

添加文件

WXEntryActivity文件在[email protected]_20171120\SDK\src\io\dcloud\HBuilder\wxapi目录下。

整个过程大概参考此篇以及链接就可顺利完成啦,因为我没脑子所以记录一下。

猜你喜欢

转载自blog.csdn.net/qq_26352515/article/details/78903896
今日推荐