微商城分享 包括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 很久没有写新博客了,前段时间有些忙,这几天趟了几个微信分享的 ...
随机推荐
- 重开Vue2.0
目录: 内容: 一.Vue内部指令: 1.v-if v-else&v-show v-if与v-show都是选择性显示内容的指令,但是二者之间有区别: 1.v-if:判断是否加载,在需要的时候加 ...
- 我的代码-cleaning
# coding: utf-8 # In[18]: import pandas as pdimport numpy as npfrom sklearn import treefrom sklearn. ...
- 同时开始了SQL。。。
SQL LIMIT OFFSET 和 LIMIT code1: SELECT id, name, score FROM table ORDER BY score DESC LIMIT OFFSET 4 ...
- springdata笔记
SpringData整合hibernate CRUD操作: applicationContext.xml: <?xml version="1.0" encoding=&quo ...
- python------面向对象进阶 Socket网络编程
一.Socket网络编程 1.七层模型,亦称OSI(Open System Interconnection)参考模型,是参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系 ...
- HDU5542 The Battle of Chibi
题意 给出长度为n的序列,问这个序列中有多少个长度为m的单调递增子序列. \(1\le M\le N\le 1000\) 分析 用F[i,j]表示前j个数构成以Aj为结尾的数列中,长度为i的严格递增子 ...
- OpenLDAP主从
yum -y install compat-openldap必须得安装这个 1:在主上 备份 cp /etc/openldap/slapd.conf /etc/open ...
- istream不是std的成员
如果报错信息为:istream不是std的成员,那么有两种可能 1.没有包含iostream库文件 2.#ifndef 和#endif使用错误,致使包含的iostream的头文件没有被主函数包含
- lambda函数的特性
lambda表达式可以理解为一种抽象的函数实现方法,这种方式只有最基本的三个步骤:给与参数,表达式实现,返回结果.这种方式非常干净,减少了内存的使用,整个程序少了函数的污染,代码格式也会更为简练.但在 ...
- windows copy 和xcopy
#将文件夹下文件拷贝到指定目录 将d盘下1文件夹内所有内容拷贝到测试目录下copy d:\1\ Z:\chenkai\测试目录\ /yxcopy D:\soft\svn工具 Z:\chenkai\测试 ...