微商城分享 包括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 很久没有写新博客了,前段时间有些忙,这几天趟了几个微信分享的 ...
随机推荐
- flask中如何生成迁移文件
在flask网站开发中,如果直接对数据库进行修改的话,风险比较高,最好的是由迁移文件生成,这样确保了数据的误操作. 在Flask中可以使用Flask-Migrate扩展,来实现数据迁移.并且集成到Fl ...
- Unity用GUI绘制Debug/print窗口/控制台-打包后测试
Unity游戏视窗控制台输出 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...
- node.js 调用第三方服务
node作为客户端调用第三方服务 nodejs.cn/api 1. let http = require('http'); let util = require("util") ...
- 20155219 mybash的实现
第五周加分题--mybash的实现 题目要求 1.使用fork,exec,wait实现mybash 2.写出伪代码,产品代码和测试代码 3.发表知识理解,实现过程和问题解决的博客(包含代码托管链接) ...
- 日常遇错之ModuleNotFoundError: No module named request
用pycharm写python的时候,import request时,报错:ModuleNotFoundError: No module named request emmmm.解决方法:pip in ...
- Js高级 部分内容 面向对象
1.单列模式 2.工厂模式 3.构造函数 (1)类 js天生自带的类 Object基类 Function Array String Number Math Date Boolean Regex ...
- tgp助手开启逆战游戏无反应
tgp助手开启逆战游戏无反应(一直显示正在运行游戏)就是没有游戏的登录界面 解决的一些方法(不一定有效): 检查显卡的驱动 检查游戏文件是否损坏 检查是否开启的防护软件程序
- s2第六章继承和多态
public class Employee { //年龄 public int Age { get; set; } //性别 public Gender Gender { get; set; } // ...
- Qt对`vtable的未定义引用
错误描述:Qt在linux系统编译时,遇到一个错误大致如下形式 在 xxxxx函数中 对‘vtable for xxxxx未定义的引用 网上找了很多,各种情况都有,大多数是虚函数未实现导致的, 但也有 ...
- 更多FMK 的还是看万一的吧
http://www.cnblogs.com/del/category/323943.html 记录一下, 作为目录