APP分享demo

app必须配置好对应的appid和secret

<html>
<head>
    <meta charset="utf-8">
    <title>app</title>
    <meta name="viewport"
          content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
    <title>APP分享demo</title>
    <script type="text/javascript" charset="utf-8">
        var shares = null;
        var Intent = null, File = null, Uri = null, main = null;

        // H5 plus事件处理
        function plusReady() {
            updateSerivces();
            if (plus.os.name == "Android") {
                main = plus.android.runtimeMainActivity();
                Intent = plus.android.importClass("android.content.Intent");
                File = plus.android.importClass("java.io.File");
                Uri = plus.android.importClass("android.net.Uri");
            }
        }

        if (window.plus) {
            plusReady();
        } else {
            document.addEventListener("plusready", plusReady, false);
        }

        /**
         *
         * 更新分享服务
         */
        function updateSerivces() {
            plus.share.getServices(function (s) {
                shares = {};
                for (var i in s) {
                    var t = s[i];
                    shares[t.id] = t;
                }
            }, function (e) {
                alert("获取分享服务列表失败:" + e.message);
            });
        }

        /**
         * 分享操作
         * @param {JSON} sb 分享操作对象s.s为分享通道对象(plus.share.ShareService)
         * @param {Boolean} bh 是否分享链接
         */
        function shareAction(sb, bh) {
            if (!sb || !sb.s) {
                alert("无效的分享服务!");
                return;
            }

            var msg = {content: sharehrefDes.value, extra: {scene: sb.x}};
            if (bh) {
                msg.href = sharehref.value;
                if (sharehrefTitle && sharehrefTitle.value != "") {
                    msg.title = sharehrefTitle.value;
                }
                if (sharehrefDes && sharehrefDes.value != "") {
                    msg.content = sharehrefDes.value;
                }
                msg.thumbs = ["logo.png"];
                msg.pictures = ["logo.png"];
            } else {
                if (pic && pic.realUrl) {
                    msg.pictures = [pic.realUrl];
                }
            }
            // 发送分享
            if (sb.s.authenticated) {

                shareMessage(msg, sb.s);
            } else {
                alert("---未授权---");
                sb.s.authorize(function () {
                    shareMessage(msg, sb.s);
                }, function (e) {
                    alert("认证授权失败:" + e.code + " - " + e.message);

                });
            }
        }

        /**
         * 发送分享消息
         * @param {JSON} msg
         * @param {plus.share.ShareService} s
         */
        function shareMessage(msg, s) {
            // alert(JSON.stringify(msg));
            s.send(msg, function () {
                alert("分享到\"" + s.description + "\"成功! ");
            }, function (e) {
                alert("分享到\"" + s.description + "\"失败: " + JSON.stringify(e));
            });
        }

        // 分析链接
        function shareHref() {
            var shareBts = [];
            // 更新分享列表
            var ss = shares['weixin'];
            ss && ss.nativeClient && (shareBts.push({title: '微信朋友圈', s: ss, x: 'WXSceneTimeline'}),
                shareBts.push({title: '微信好友', s: ss, x: 'WXSceneSession'}));
            ss = shares['qq'];
            ss && ss.nativeClient && shareBts.push({title: 'QQ', s: ss});
            // 弹出分享列表
            shareBts.length > 0 ? plus.nativeUI.actionSheet({
                title: '分享',
                cancel: '取消',
                buttons: shareBts
            }, function (e) {
                (e.index > 0) && shareAction(shareBts[e.index - 1], true);
            }) : plus.nativeUI.alert('当前环境无法支持分享链接操作!');
        }
    </script>
</head>
<body>
<p>链接地址:</p>
<input id="sharehref" type="url" value="http://www.baidu.com"/>
<p>链接标题:</p>
<input id="sharehrefTitle" type="text" value="标题"/>
<p>链接描述:</p>
<input id="sharehrefDes" type="text" value="描述"/></br>
<button type="button" onclick="shareHref()">分享</button>
</body>
</html>

 

转载于:https://my.oschina.net/qjd/blog/1593776

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值