微商城分享 包括app分享 微信分享
<template>
<div class="spr">
<img src="../../assets/images/activity/shier/shier1.jpg" alt="" srcset="">
<img src="../../assets/images/activity/shier/shier2.jpg" alt="" srcset="">
<img src="../../assets/images/activity/shier/shier3.jpg" alt="" srcset="">
<img src="../../assets/images/activity/shier/shier4.jpg" @click="goProduct('49a586a43d6a4768ac2dbb64052b72b0')" alt="" srcset="">
<img src="../../assets/images/activity/shier/shier5.jpg" alt="" srcset="">
<img src="../../assets/images/activity/shier/shier6.jpg" alt="" srcset="">
<div class="btm" @click="goProduct('49a586a43d6a4768ac2dbb64052b72b0')">
立即购买
</div>
</div>
</template> <script>
import config from '../../config.js'
import jumpNative from '../../utils/JumpNative.js'
import ShareService from '../../services/ShareService'
export default {
data() {
return {
}
},
mounted() { },
created() {
this.init();
},
mounted() {
this.fontSize = document.body.clientWidth / 11.25
window.addEventListener('scroll', this.scrollBar, true);
},
destroyed () {
window.removeEventListener('scroll', this.scrollBar, true);
},
methods: {
init(){
if(!jumpNative.isAppH5()){
ShareService.shareProduct({
name: '国粹洗沐原浆 唤活秀发之美',
desc: '秘方配制 十二味植物熬制原浆 无硅油 无化学成分 呵护您的秀发 体验猛戳',
shareUrl: window.location.href,
thumbUrl: config.app.shier,
});
}else{
jumpNative.topRightShare(1,config.app.shier,'国粹洗沐原浆 唤活秀发之美','秘方配制 十二味植物熬制原浆 无硅油 无化学成分 呵护您的秀发 体验猛戳')
}
},
//跳转商品详情
goProduct(skuId){
if(!jumpNative.isAppH5()){
console.log(config.baseUrl+'p/'+skuId+'/'+this.$route.query.inviteCode);
location.href=config.baseUrl+'p/'+skuId+'/'+this.$route.query.inviteCode
}else{
jumpNative.jumpProduct(skuId)
}
},
},
beforeCreate: function() {
document.getElementsByTagName("body")[0].className="body-sp01";
},
beforeDestroy: function() {
document.body.removeAttribute("class","body-sp01");
}
}
</script>
<style lang="less">
.body-sp01{
background: #fff;
}
</style>
<style scoped>
.spr {
padding-bottom: 1.45rem;
}
.spr img {
margin: 0px;
padding: 0px;
vertical-align: middle;
width: 100%;
}
.spr .btm {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 1.45rem;
line-height: 1.45rem;
text-align: center;
background: #ff4646;
color: #fff;
font-size: 0.48rem;
}
</style>
/**
*JavaScript调用协议
*/ //判断iOS还是Android
const u = navigator.userAgent;
const isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
const isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 //判断是否是微信浏览器的函数
function isWeiXin() {
//window.navigator.userAgent属性包含了浏览器类型、版本、操作系统类型、浏览器引擎类型等信息,这个属性可以用来判断浏览器类型
var ua = window.navigator.userAgent.toLowerCase();
//通过正则表达式匹配ua中是否含有MicroMessenger字符串
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
return true;
} else {
return false;
}
} function GetUrlParam(paraName) {
var url = document.location.toString();
var arrObj = url.split("?"); if (arrObj.length > 1) {
var arrPara = arrObj[1].split("&");
var arr; for (var i = 0; i < arrPara.length; i++) {
arr = arrPara[i].split("="); if (arr != null && arr[0] == paraName) {
return arr[1];
}
}
return "";
} else {
return "";
}
} export default {
//判断是否是APP内嵌H5页
isAppH5() {
let ddm_from = parseInt(GetUrlParam("ddm_from"))
let isApp = (ddm_from === 1 || ddm_from === 0) ? true : false
return isApp && !isWeiXin()
},
//判断是否Android
checkAppType() {
if (isAndroid) {
return 'android'
} else if (isiOS) {
return 'ios'
}
},
//跳转到产品详情
jumpProduct(skuId) {
if (isAndroid) {
DDMallBridge.openProduct(skuId);
} else if (isiOS) {
window.webkit.messageHandlers.openProduct.postMessage(skuId)
} else {
console.log("非iOS,Android")
}
},
//跳转到新的H5页面
jumpH5(url) { if (isAndroid) {
DDMallBridge.openHtml(url);
} else if (isiOS) {
window.webkit.messageHandlers.openHtml.postMessage(url);
} else {
console.log("非iOS,Android")
}
}, /*
* 跳转到新的H5页面
* whiteStyle 白色样式,0:不启用;1:启用
* titleBarColor 标题栏背景颜色
* url 要打开的url
*
*/
openColorHtml(whiteStyle, titleBarColor, url) {
if (isAndroid) {
DDMallBridge.openColorHtml(whiteStyle, titleBarColor, url);
} else if (isiOS) {
window.webkit.messageHandlers.openColorHtml.postMessage({
"whiteStyle": whiteStyle,
"titleBarColor": titleBarColor,
"url": url
});
}
},
/*
* 设置分享类型
* shareType 0 不显示 1 分享当前页面URL,带默认分享元素 2 每日上新,App使用常量三要素+URL分享
*
*/
setTitleBarShareType(shareType, imgUrl, title, desc) {
if (isAndroid) {
DDMallBridge.setTitleBarShareType(shareType, imgUrl, title, desc);
} else if (isiOS) {
window.webkit.messageHandlers.setTitleBarShareType.postMessage({
"shareType": shareType,
"imgUrl": imgUrl,
"title": title,
"desc": desc,
});
}
},
//弹出提示
toast(status, message) {
if (isAndroid) {
DDMallBridge.toast(status, message);
} else if (isiOS) {
window.webkit.messageHandlers.toast.postMessage({ status: status, message: message });
} else {
console.log("非iOS,Android")
}
},
getOAuth() {
if (isAndroid) {
DDMallBridge.getOAuth()
} else if (isiOS) {
//window.webkit.messageHandlers.toast.postMessage({status:0,message:'asd'});
window.webkit.messageHandlers.getOAuth.postMessage('1')
} else {
console.log("非iOS,Android")
}
},
//调用分享
shareProduct(skuId) {
if (isAndroid) {
DDMallBridge.shareProductWithProfit(skuId);
} else if (isiOS) {
window.webkit.messageHandlers.shareProductWithProfit.postMessage(skuId);
} else {
console.log("非iOS,Android")
}
},
//控制标题栏透明度
setTitleBarAlpha(alpha) {
if (isAndroid) {
DDMallBridge.setTitleBarAlpha(alpha);
} else if (isiOS) {
window.webkit.messageHandlers.setTitleBarAlpha.postMessage(alpha);
} else {
console.log("非iOS,Android")
}
},
//控制标题栏资源样式
setTitleBarDarkRes(isDark) {
if (isAndroid) {
DDMallBridge.setTitleBarDarkRes(isDark);
} else if (isiOS) {
window.webkit.messageHandlers.setTitleBarDarkRes.postMessage(isDark);
} else {
console.log("非iOS,Android")
}
},
//跳转活动 1: 0元领面膜。
jumpActivity(type) {
if (isAndroid) {
DDMallBridge.jumpActivity(type);
} else if (isiOS) {
window.webkit.messageHandlers.jumpActivity.postMessage(type);
}
},
//跳转到我的粉丝 mode 模式(0:全部粉丝;1:直属粉丝;2:团队粉丝)
jumpMyFans(mode) {
console.log(mode)
if (isAndroid) {
console.log('跳转到我的粉丝:isAndroid,mode '+mode)
DDMallBridge.jumpMyFans(mode);
} else if (isiOS) {
console.log('跳转到我的粉丝:isiOS,mode '+mode)
window.webkit.messageHandlers.jumpMyFans.postMessage(mode);
}
},
//1. 分享当前页面URL,带默认分享元素 2. 0元领面膜,App使用常量4要素,URL为0元领面膜的着陆页
zeroShare(shareType, imgUrl, title, desc) {
if (isAndroid) {
console.log({ "shareType": shareType, "imgUrl": imgUrl, "title": title, "desc": desc });
DDMallBridge.shareToWX(shareType, imgUrl, title, desc);
} else if (isiOS) {
console.log({ "shareType": shareType, "imgUrl": imgUrl, "title": title, "desc": desc });
window.webkit.messageHandlers.shareToWX.postMessage({ "shareType": shareType, "imgUrl": imgUrl, "title": title, "desc": desc });
} else {
console.log("非iOS,Android" + shareType, imgUrl, title, desc);
}
},
shareDownload(shareType, imgUrl, title, desc, link) {
if (isAndroid) {
DDMallBridge.shareToWX(shareType, imgUrl, title, desc, link);
} else if (isiOS) {
console.log({ "shareType": shareType, "imgUrl": imgUrl, "title": title, "desc": desc });
window.webkit.messageHandlers.shareToWX.postMessage({ "shareType": shareType, "imgUrl": imgUrl, "title": title, "desc": desc, "shareUrl": link });
} else {
console.log("非iOS,Android" + shareType, imgUrl, title, desc);
}
},
//右上角分享
topRightShare(shareType, imgUrl, title, desc) {
if (isAndroid) {
DDMallBridge.setTitleBarShareType(shareType, imgUrl, title, desc);
} else if (isiOS) {
console.log({ "shareType": shareType, "imgUrl": imgUrl, "title": title, "desc": desc });
window.webkit.messageHandlers.setTitleBarShareType.postMessage({ "shareType": shareType, "imgUrl": imgUrl, "title": title, "desc": desc });
} else {
console.log("非iOS,Android" + shareType, imgUrl, title, desc);
}
},
//结束上拉更多 hasMore 是否有更多(1:存在更多数据;0:没有更多数据)
finishLoadMore(hasMore) {
if (isAndroid) {
DDMallBridge.finishLoadMore(hasMore);
} else if (isiOS) {
window.webkit.messageHandlers.finishLoadMore.postMessage(hasMore);
}
},
//设置首页快捷导航数据
setHomeShortcut(jsonArray) {
if (isAndroid) {
DDMallBridge.setHomeShortcut(jsonArray);
} else if (isiOS) {
window.webkit.messageHandlers.setHomeShortcut.postMessage(jsonArray);
}
},
//分享页面截图:0. 保存到本地1. 分享到微信2. 传递给H5,H5需要接收Base64、 URL encoded后的图片数据,JS方法vue.onScreenShot(int status,String base64)
screenShotApp(type){
console.log('分享页面截图 type: '+type);
if (isAndroid) {
DDMallBridge.screenshot(type);
} else if (isiOS) {
window.webkit.messageHandlers.screenshot.postMessage(type);
}
}
}
import Config from '../config.js';
export default {
initShare() {
if (window.wx === undefined) return;
let title = Config.app.name;
let desc = Config.app.desc;
let imgUrl = Config.app.Logo;
let link = Config.app.shareUrl;
this.doShare(title, desc, link, imgUrl);
},
shareProduct(product) {
if (window.wx === undefined) return;
let title = product.name;
let desc = product.desc||Config.app.desc;
let imgUrl = product.thumbUrl || Config.app.Logo;
let link = product.shareUrl;
this.doShare(title, desc, link, imgUrl);
},
shareCoupon(title, desc, link, imgUrl) {
if (window.wx === undefined) return;
imgUrl = imgUrl || Config.app.icon;
this.doShare(title, desc, link, imgUrl);
},
doShare(title, desc, link, imgUrl) {
// WeChatService.initConfig(['onMenuShareTimeline', 'onMenuShareAppMessage', 'showMenuItems']);
wx.ready(() => {
wx.showMenuItems({
menuList: [
'menuItem:share:appMessage', // 发送给朋友
'menuItem:share:timeline', // 分享到朋友圈
'onMenuShareTimeline',
'onMenuShareAppMessage',
]
});
setTimeout(() => {
//分享到朋友圈
wx.onMenuShareTimeline({
title,
desc,
link,
imgUrl,
success: function () {
console.log('分享成功 title: '+title+' desc:'+desc);
},
fail: (err) => {
console.log(err);
error && error(err);
}
});
//分享给朋友
wx.onMenuShareAppMessage({
title,
desc,
link,
imgUrl ,
success: function () {
console.log('分享成功 title: '+title+' desc:'+desc);
},
fail: (err) => {
console.log(err);
error && error(err);
},
complete:(complete)=>{
console.log(JSON.stringify(complete));
}
})
}, 60)
});
wx.error(function(res){
console.log('wx.error:');
console.log(JSON.stringify(res));
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});
}
}
config.js
var dev_env = require('../config/dev.env');
var test_env = require('../config/test.env');
var pro_env = require('../config/prod.env');
var baseUrl = process.env.BASE_API;//研发后台接口
var h5Url = process.env.H5_URL;//静态H5地址的主站
var wechatUrl = process.env.WECHAT_URL;//微商城URL 用作APP里跳转用
var Logo = process.env.BASE_LOGO;//logo
var Zero = process.env._zero;//0元购商品
export default {
h5Url:h5Url,
wechatUrl:wechatUrl,
baseUrl: baseUrl,
apiPrefix: baseUrl + 'ddmallapi',
Logo:Logo,
Zero:Zero,
app: {
name: '',
desc: '',
company: '',
Logo: 'https://oss.dodomall.com/logo/logo.png',
url: baseUrl,
version: 'v1.0',
csphone: '4000063037',
//普通用户的邀请有奖
normalInviteUrl: wechatUrl + 'tobeowener',
//店主用户的邀请有奖
vipInviteUrl: wechatUrl + 'beowener',
//关注我们
followUrl: wechatUrl + 'share-qrcode',
//注册协议
agreementUrl: wechatUrl + 'register-protocol',
//隐私协议
privacyUrl: wechatUrl + 'privacy-protocol',
//常见问题
commonIssues: wechatUrl + 'mine/common-issues',
//常见问题
newComerGuideUrl: wechatUrl + 'mine/newcomer-guide',
//logo
//新手指引
newcomerGuide: 'https://oss.dodomall.com/app/newcomerLogo.png',
//关于我们
aboutUs: 'https://oss.dodomall.com/app/newcomerLogo.png',
//成为店主
joinUrl:'https://oss.dodomall.com/app/giftLogo.png',
//邀请有奖
inviteLogo: 'https://oss.dodomall.com/app/inviteLogo.png',
//每日上新
dailyNew:'https://oss.dodomall.com/wap/meirishangxin.png',
//新人专享
newComer:'https://oss.dodomall.com/wap/xinrenzhuanxiang.png',
//佣金翻倍
commssion:'https://oss.dodomall.com/wap/yongjinfanbei.png',
//母婴活动
mom:'https://oss.dodomall.com/app/2019-01/mom-body.jpg',
qingrenjie:'http://oss.dianduoduo.store/product/2019-02/20190213063815268WQ.png',
spring: 'https://oss.dodomall.com/app/2019-01/activity-beauty.jpg',
spr: 'https://oss.dodomall.com/app/2019-01/activity-buy.jpg',
//0元领
fansActivity:'https://oss.dodomall.com/activity/activity1/activity1_1.png'
},
enableAlipay: true,
enableWepay: true,
offlinePayMinMoney: 9900,
withdrawMin: 1,
withdrawMax: 1000000,
agreementName: '店多多用户服务协议',
refundReasons: ['拍错了 / 信息填写错误', '不想要了', '其它'],
refundGoodsReasons: ['拍错了 / 信息填写错误', '不想要了', '其它'],
expressNames: ['圆通快递', '申通快递', '顺丰快递', '韵达快递', '德邦物流', '中通快递', '百世快递', '邮政包裹', 'EMS', '邮政国际'],
toast: [{
id: 'noLogin',
title: '你还未设置密码',
message: '密码可用于登录、转帐、提现等,为保证帐户安全,请设置密码'
}]
}
微商城分享 包括app分享 微信分享的更多相关文章
- android APP 中微信分享功能实现 的总结
//花了很长时间最终完成了微信分享功能,中间走了很多弯路,在此做一下小结,希望对在应用中使用到微信分享的朋友有所帮助. 主要问题就是下面两个: 1.为什么运行了项目之后,微信分享只是闪了一下就没有了? ...
- 友盟分享——Android App接入微信开放平台注意事项
一.Android第三方应用接入微信开放平台的注意事项: 1. 到微信开放平台官网申请正式的AppID(需通过审核),要填写包名.app签名的md5值.至于如何获取app签名信息,官方提供签名包apk ...
- HTML5网页如何调用浏览器APP的微信分享功能?
if (/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Al ...
- android微信分享不出去?四步搞定!
现在做的项目中集成了友盟分享,产品要求集成微信.朋友圈.QQ.QQ空间.短信这几个分享平台.按照友盟的文档集成一切都很顺利,集成成功以后测试QQ.QQ空间.短信都没有问题,唯独微信和朋友圈一直分享不出 ...
- Android 微信分享不出去?四步搞定!
现在做的项目中集成了友盟分享,产品要求集成微信.朋友圈.QQ.QQ空间.短信这几个分享平台.按照友盟的文档集成一切都很顺利,集成成功以后测试QQ.QQ空间.短信都没有问题,唯独微信和朋友圈一直分享不出 ...
- H5之外部浏览器唤起微信分享
最近在做一个手机站,要求点击分享可以直接打开微信分享出去.而不是jiathis,share分享这种的点击出来二维码.在网上看了很多,都说APP能唤起微信,手机网页实现不了.也找了很多都不能直接唤起微信 ...
- 微信分享网页时自定义缩略图和简介(.net版本)
要实现微信分享网页时自定义缩略图和简介,需开发者在公众平台网站中创建公众号.获取接口权限后,通过微信JS-SDK的分享接口,来实现微信分享功能. 下面来说明实现步骤. 第一部分 准备步骤 步骤一:注册 ...
- vue history模式下的微信分享
// 微信验证 export function requireConfig() { let url = window.location.href systemApi.wxoption({ url: u ...
- unity探索者之微信分享所有流程,非第三方插件
版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/7560575.html 很久没有写新博客了,前段时间有些忙,这几天趟了几个微信分享的 ...
随机推荐
- 基于redis的延迟消息队列设计(转)
需求背景 用户下订单成功之后隔20分钟给用户发送上门服务通知短信 订单完成一个小时之后通知用户对上门服务进行评价 业务执行失败之后隔10分钟重试一次 类似的场景比较多 简单的处理方式就是使用定时任务 ...
- 再见了我热爱的ACM赛场
随着2017EC-Final结束,我的ACM生涯也真正结束了,区域赛三铜三银三金,没有打铁,对我来说算是很满足了. 为什么打了ACM?我记得进入大学之后大概认真上课两三周,我就开始对大学讲课失望,开始 ...
- LG1912 [NOI2009]诗人小G
题意 题目描述 小G是一个出色的诗人,经常作诗自娱自乐.但是,他一直被一件事情所困扰,那就是诗的排版问题. 一首诗包含了若干个句子,对于一些连续的短句,可以将它们用空格隔开并放在一行中,注意一行中可以 ...
- kafka-producer kerberos 原理和配置
kerberos简单介绍 kerberos这一名词来源于希腊神话“三个头的狗---地狱之门守护者”后来沿用作为安全认证的概念,该系统设计上 采用客户端/服务器结构与DES(Data Encryptio ...
- live555 交叉编译移植到海思开发板
本文章参考了.http://blog.csdn.net/lawishere/article/details/8182952,写了hi3518的配置说明.特此感谢 https://blog.csdn.n ...
- C# System.IO和对文件的读写操作
System.IO命名空间中常用的非抽象类 BinaryReader 从二进制流中读取原始数据 BinaryWriter 从二进制格式中写入原始数据 BufferedStream 字节流的临时存储 ...
- 手把手教你实现 Google 拓展插件(转自实验楼)
一.课程简介 1.1 实验介绍 本课程的实验环境由实验楼提供,Google 浏览器拓展的运行环境为 Google 浏览器.在本实验中,你将了解如何制作一个属于你自己的 Google 拓展插件. 课程实 ...
- 自己动手开发智能聊天机器人完全指南(附python完整源码)
一.前言 人工智能时代,开发一款自己的智能问答机器人,一方面提升自己的AI能力,另一方面作为转型AI的实战练习.在此把学习过程记录下来,算是自己的笔记. 二.正文 2.1 下载pyaiml 下载pya ...
- oracle表被锁(delete或update一直处于执行状态)的处理办法。
--首先查看有哪些锁 select /*+ rule */ s.username, decode(l.type,'TM','TABLE LOCK','TX','ROW LOCK',null) lock ...
- Linux下安装jdk8步骤详述
作为Java开发人员,在Linux下安装一些开发工具是必备技能,本文以安装jdk为例,详细记录了每一步的操作命令,以供参考. 0.下载jdk8 登录网址:http://www.oracle.com/t ...