微商城分享 包括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 很久没有写新博客了,前段时间有些忙,这几天趟了几个微信分享的 ...
随机推荐
- 3.6 html报告乱码问题优化
3.6 html报告乱码问题优化 前言python2用HTMLTestRunner生成测试报告时,有中文输出情况会出现乱码,这个主要是编码格式不统一,改下编码格式就行.下载地址:http://tung ...
- PAT 乙级 1089 狼人杀 && 1090 危险品装箱 (我的时间最短哦)
1 1089的点在注释里面,核心就是遍历任意两个人说谎,看结果是否满足题目要求 2 1090 是一道好题目, 考虑到了时间复杂度 通常想法是看清单中每一个物品 是否存在与其不能存放的物品 那么复杂 ...
- 软件工程第4次作业------石墨文档Android客户端案例分析
作业要求的博客链接:https://edu.cnblogs.com/campus/nenu/2016CS/homework/2505 分析产品:石墨文档Android客户端 第一部分 调研和评测 1. ...
- js封装选项卡
<div class="forestcamp_box"> <img src="img/home_02.jpg" /> <div c ...
- zabbix客户端的安装、zabbix主被动模式、添加主机模板等、处理页面的中文乱码
1.zabbix客户端的安装: 如下步骤: wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch. ...
- 在Linux中执行.sh脚本,异常
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory. 分析:这是不同系统编码格式引起的:在windows系统中 ...
- 关于java类加载的那些事
首先,类加载的定义: 类加载(Class Loading)是一种机制,他描述的是将字节码以文件形式加载到内存再经过连接.初始化后,最终形成可以被虚拟机直接使用的Java类型地过程. 其次,类加载器的分 ...
- C# System.IO和对文件的读写操作
System.IO命名空间中常用的非抽象类 BinaryReader 从二进制流中读取原始数据 BinaryWriter 从二进制格式中写入原始数据 BufferedStream 字节流的临时存储 ...
- Ubuntu 16.04 LTS 常用快捷键
在Linux下Win键就是Super键 启动器 Win(长按) 打开启动器,显示快捷键 Win + Tab 通过启动器切换应用程序 Win + 1到9 与点击启动器上的图标效果一样 Win + Shi ...
- mysql B+tree
什么是索引? 索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构. id和磁盘地址的映射. 关系型数据库存在磁盘当中. 为什要用索引? 索引能极大减少存储引擎需要扫描的数据量. 索引可以 ...