博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
H5 + 开发App(分享功能)
阅读量:6110 次
发布时间:2019-06-21

本文共 2438 字,大约阅读时间需要 8 分钟。

我们开发App有一个不可少的功能,就是分享功能。让用户将app分享到他的社交圈。比如微信 QQ 微博等等。

 

 准备工作:我们要先去申请相关的权限,

这是传送门http://ask.dcloud.net.cn/article/36。有一些配置说明和权限申请地址

    腾讯已经转移到QQ 互联上去了,官网给的地址已经不可以用了。申请完将SDK配置好。也就是填上appid 和appsecret。

 如果没有申请权限的情况下。可以真机调试但是不可以打包生成apk文件。

 

代码实现的基本原理。

 1. 获取分享服务对象列表获取分享服务列表可以调用plus.share.getServices()接口。

2用户分享信息前需要对分享平台是否授权过进行判断,这个我们自己基本是知道的我们那些有授权那些没有。

 3配置我们的分享消息

 4 分享按钮点击事件。

 下面是我的dome代码,判断授权和 界面弹出吐司提示函数不是必要的,只是开发时的提示有助于开发。实际项目中可以不使用。

//分享功能

document.getElementById('share').addEventListener('tap', function(event) {
shareHref();
})
var Intent = null,
File = null,
Uri = null,
main = null;
var shares = null;
var shareImageUrl = '';
mui.plusReady(function() {
updateSerivces();
if(plus.os.name == "Android") {
Intent = plus.android.importClass("android.content.Intent");
File = plus.android.importClass("java.io.File");
Uri = plus.android.importClass("android.net.Uri");
main = plus.android.runtimeMainActivity();
}
})
/**
* 更新分享服务
*/
function updateSerivces() {
plus.share.getServices(function(s) {
shares = {};
for(var i in s) {
var t = s[i];
shares[t.id] = t;
}
outSet("获取分享服务列表成功");
}, function(e) {
outSet("获取分享服务列表失败:" + e.message);
});
}
/**
* 分享操作
*/
function shareAction(id, ex) {
var s = null;
if(!id || !(s = shares[id])) {
outLine("无效的分享服务!");
return;
}
if(s.authenticated) {
outSet("---已授权---");
shareMessage(s, ex);
} else {
outSet("---未授权---");
s.authorize(function() {
shareMessage(s, ex);
}, function(e) {
outLine("认证授权失败");
});
}
}
/**
* 发送分享消息
*/
function shareMessage(s, ex) {
var msg = {
content: '快和我一起来玩锄禾农场吧',
href: 'http://www.chnc.shop/chnc/1.html?id='+AppID,
title: '锄禾农场',
content: '快和我一起来玩锄禾农场吧',
thumbs: ["img/mmexp.png"],
pictures: ["img/mmexp.png"],
extra: {
scene: ex
}
};
s.send(msg, function() {
outLine("分享成功!");
}, function(e) {
outLine("分享失败!");
});
}
/**
* 分享按钮点击事件
*/
function shareHref() {
var ids = [{
id: "weixin",
ex: "WXSceneSession" /*微信好友*/
}, {
id: "weixin",
ex: "WXSceneTimeline" /*微信朋友圈*/
}, {
id: "qq" /*QQ好友*/
}, {
id: "tencentweibo" /*腾讯微博*/
}, {
id: "sinaweibo" /*新浪微博*/
}],
bts = [{
title: "发送给微信好友"
}, {
title: "分享到微信朋友圈"
}, {
title: "分享到QQ"
}, {
title: "分享到腾讯微博"
}, {
title: "分享到新浪微博"
}];
plus.nativeUI.actionSheet({
cancel: "取消",
buttons: bts
},
function(e) {
var i = e.index;
if(i > 0) {
shareAction(ids[i - 1].id, ids[i - 1].ex);
}
}
);
}
function outSet(msg) {
console.log(msg);
}
// 界面弹出吐司提示
function outLine(msg) {
mui.toast(msg);
}

 

转载于:https://www.cnblogs.com/wangercha/p/7416682.html

你可能感兴趣的文章
VS2010无法修改资源文件
查看>>
邮箱工具(尚未完成)的几个组件类
查看>>
inkscape - 百度百科
查看>>
使用 Python 进行稳定可靠的文件操作
查看>>
数据结构之后缀数组
查看>>
.Net 中DataSet和DataTable的 区别与联系
查看>>
Windows 管理
查看>>
HDU 1619 Unidirectional TSP(单向TSP + 路径打印)
查看>>
微软BI 之SSIS 系列 - 使用 Multicast Task 将数据同时写入多个目标表,以及写入Audit 与增量处理信息...
查看>>
使用avalon 实现一个订座系统
查看>>
Ubuntu 如何downgrade降级系统
查看>>
MySQL执行外部sql脚本
查看>>
固态硬盘和机械硬盘的比较和SQLSERVER在两种硬盘上的性能差异
查看>>
java 结束程序进程 代码
查看>>
『摄影欣赏』20幅精美的秋天落叶风景欣赏【组图】
查看>>
基于Oracle的SQL优化(社区万众期待 数据库优化扛鼎巨著)
查看>>
Java I/O 文件加锁,压缩
查看>>
网页实战开发笔记之——最全面的HTML的头部信息介绍
查看>>
IOS 消息机制(NSNotificationCenter)
查看>>
[转载] MATLAB快捷键
查看>>