微信分享

微信小程序全局设置分享内容

给你一囗甜甜゛ 提交于 2020-02-14 23:57:46
微信小程序每个页面都可以在onShareAppMessage中设置分享内容,如果想要全局设置成一样的分享内容如何设置呢? 在app.js中新增以下方法: 1 //重写分享方法 2 overShare: function () { 3 //监听路由切换 4 //间接实现全局设置分享内容 5 wx.onAppRoute(function (res) { 6 //获取加载的页面 7 let pages = getCurrentPages(), 8 //获取当前页面的对象 9 view = pages[pages.length - 1], 10 data; 11 if (view) { 12 data = view.data; 13 console.log('是否重写分享方法', data.isOverShare); 14 if (!data.isOverShare) { 15 data.isOverShare = true; 16 view.onShareAppMessage = function () { 17 //你的分享配置 18 return { 19 title: '标题', 20 path: '/pages/nearby/index' 21 }; 22 } 23 } 24 } 25 }) 26 }, 然后在onLaunch中调用即可,如果你有更好的实现方案,请告诉我. 来源:

微信团队分享:iOS版微信是如何防止特殊字符导致的炸群、APP崩溃的?

大兔子大兔子 提交于 2020-02-13 08:38:25
本文来自微信开发团队yanyang的技术分享。 1、引言 相信大家都遇到过一段特殊文本可以让iOS设备所有app闪退的经历。前段时间大年初一,又出现某个印度语字符引起iOS11系统奔溃,所幸iOS版微信客户端做了保护并没有引起太大问题(字符处理这类技术问题,其实曾在Android版微信上导致过严重的用户体验危机,感兴趣的可以看看文章《 微信团队披露:微信界面卡死超级bug“15。。。。”的来龙去脉 》)。 一般来说,特殊字符闪退是系统漏洞引起,只要更新系统就行。但大部分用户不愿意更新系统,而苹果也不一定第一时间解决问题。另外后台可以拦截恶意文本传递,但对于本地已下发的消息,后台没有办法让它删除。所以客户端还是要做些保护预防特殊字符闪退。 学习交流: - 即时通讯开发交流群: 320837163 [推荐] - 移动端IM开发入门文章:《 新手入门一篇就够:从零开发移动端IM 》 (本文同步发布于: http://www.52im.net/thread-1449-1-1.html ) 2、微信的思路 由于无法事先知道字符串里包含特殊字符,所以只能先让它排版/绘制,看看是否出现问题。做法是,在排版/绘制字符串前,先设置标记位,排版/绘制结束后,移除标记位。 一旦发现标记位存在,就意味着这字符串可能有问题,下次就不显示这个字符串: 这里有几个问题: 有可能在排版/绘制过程中

微信团队分享:iOS版微信的高性能通用key-value组件技术实践

吃可爱长大的小学妹 提交于 2020-02-13 07:14:28
本文来自微信开发团队guoling的技术分享。 1、前言 本文要分享的是iOS版微信内部正在推广和使用的一个高性能通用key-value 组件的技术实践过程,该组件在微信内部被命名为MMKV(以下简称MMKV)。 MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。希望对于有高性能key-value 组件或类似技术需求的IM同行,能通过本文获得一定的启发。 学习交流: - 即时通讯开发交流群: 320837163 [推荐] - 移动端IM开发入门文章:《 新手入门一篇就够:从零开发移动端IM 》 (本文同步发布于: http://www.52im.net/thread-1461-1-1.html ) 2、MMKV 源起 在 iOS 微信的日常运营中,时不时就会爆发特殊文字引起 iOS 系统的 crash,《 微信团队分享:iOS版微信是如何防止特殊字符导致的炸群、APP崩溃的? 》一文里面设计的技术方案是在关键代码前后进行计数器的加减,通过检查计数器的异常,来发现引起闪退的异常文字。 《 微信团队分享:iOS版微信是如何防止特殊字符导致的炸群、APP崩溃的? 》里设计的技术方案大致原理就是: 1)在会话列表、会话界面等有大量 cell 的地方,希望新加的计时器不会影响滑动性能; 2

微信团队分享:极致优化,iOS版微信编译速度3倍提升的实践总结

不羁岁月 提交于 2020-02-13 06:21:40
1、引言 岁月真是个养猪场,这几年,人胖了,微信代码也翻了。 记得 14 年转岗来微信时,用自己笔记本编译微信工程才十来分钟。如今用公司配的 17 年款 27-inch iMac 编译要接近半小时;偶然间更新完代码,又莫名其妙需要全新编译。在这么低的编译效率下,开发心情受到严重影响。 于是年初我向上头请示,优化微信编译效率,上头也同意了。 2、现有方案 在动手之前,先搜索目前已有方案,大概情况如下。 2.1 优化工程配置 1)将 Debug Information Format 改为 DWARF: Debug 时是不需要生成符号表,可以检查一下子工程(尤其开源库)有没有设置正确。 2)将 Build Active Architecture Only 改为 Yes: Debug 时是不需要生成全架构,可以检查一下子工程(尤其开源库)有没有设置正确。 3)优化头文件搜索路径: 避免工程 Header Search Paths 设置了路径递归引用: Xcode 编译源文件时,会根据 Header Search Paths 自动添加 -I 参数,如果递归引用的路径下子目录越多,-I 参数也越多,编译器预处理头文件效率就越低,所以不能简单的设置路径递归引用。同样 Framework Search Paths 也类似处理。 2.2 使用 CocoaPods 管理第三方库 这是业界常用的做法

微信分享类

眉间皱痕 提交于 2020-02-12 18:26:25
<?php /** * 微信分享相关 * * @since 2017-07-15 */ use Yaf\Registry; class Service_WxShare{ private $appId; private $appSecret; public function __construct($appId, $appSecret) { $this->appId = $appId; $this->appSecret = $appSecret; } public function getSignPackage() { $jsapiTicket = $this->getJsApiTicket(); // 注意 URL 一定要动态获取,不能 hardcode. $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $timestamp = time(); $nonceStr = $this->createNonceStr(); // 这里参数的顺序要按照 key

微信分享BUG

孤人 提交于 2020-02-10 17:35:33
WXFileObject fileObject = new WXFileObject() ; fileObject .setContentLengthLimit( 1024 * 1024 * 10) ; fileObject .setFilePath(filePath + "/" + fileName) ;//设置文件本地地址 WXMediaMessage msg = new WXMediaMessage() ; msg .mediaObject = fileObject ; msg .title = fileName ; SendMessageToWX .Req req = new SendMessageToWX .Req() ; req .transaction = buildTransaction( "file") ; req .message = msg ; req .scene = mTargetScene ; LogUtils .i( "SendToWXActivity", "mTargetScene---" + buildTransaction( "file") + "---" + msg) ; api .sendReq(req) ; http://blog.csdn.net/qq_34706837/article/details/74995536 http:/

iOS ShareSDK 三方分享/登录使用

血红的双手。 提交于 2020-02-07 03:52:13
原文 http://www.cnblogs.com/CoderAlex/p/4860352.html 一: 快速集成 1.前言   作为现在App里必不可少的用户分享需要,社交化分享显然是我们开发app里较为常用的。 最近因为公司App有社交化分享的需要,就特此研究了会,拿出来与大家分享。 想要集成社交会分享,我们可以使用 ShareSDK - 优点功能丰富,缺点体积较大 百度分享SDK - 缺点功能相对ShareSDK较少,优点体积较小 这是现在较为常用的两种社交化分享工具。 使用哪一种,就看个人的app的需要来决定了。 今天我主要说的是ShareSDK的简单集成和使用。 2.集成前的准备工作   2.1. 拿自己的Appkey 去下载ShareSDK   下载地址: http://sharesdk.cn/Download 2.2. 申请分享工具的Appkey   例如: 新浪微博、腾讯微博、豆瓣应用、人人网、QQ空间 去各大社交网站的开发者平台,进行注册申请即可。 获取如下: //新浪微博: //App Key:2258477553 //App Secret:1e2f275afc375109e456f550fb3918e8 //腾讯微博: //App key:2620460989 //App secret:58c55f572d5ae35e0c355f4c0ee11283 3

微信小程序分享朋友圈

最后都变了- 提交于 2020-01-31 03:20:51
<canvas style="margin-left:1rpx;width: 680rpx;height: 850rpx;position: relative;" canvas-id="myCanvas"></canvas> share() { var _this = this; this.setData({ modalName: "Share" }) //请求二维码 var qrcode = new Promise(function(resolve) { wx.getImageInfo({ src: app.globalData.prefixUrl + "/rest/rq.png", success: function(res) { resolve(res.path) } }) }) //获取绘制图片 var sp = new Promise(function(resolve) { wx.getImageInfo({ src: _this.data.detailInfo.url, success: function(res) { resolve(res.path) } }) }) Promise.all([sp, qrcode]).then(function(result) { _this.setData({ loading: false }) //绘制canvas图片

js分享功能(微信,QQ,微博,空间,豆瓣等)

陌路散爱 提交于 2020-01-27 04:18:33
js分享功能(微信,QQ,微博,空间,豆瓣等) 日常编程中,我们可能会碰到项目中的分享功能,各大平台都有分享接口和文档说明,当然也有一些一键分享插件,例如: sosh , iShare.js 等等 但有些同学不想引用插件,那么我整理了一些常用的分享至平台功能,以供参考。 html结构: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 < div class="share-list"> < ul class="share-container"> < li > < a title="分享到微信" href="javascript:void(0)" class="bds_weixin"> < img src="http://images.cnblogs.com/cnblogs_com/a-cat/1193051/o_img_wechat.png" /> </ a > < div class="wechat-share"> < img src="http://images.cnblogs.com/cnblogs_com/a-cat/1193051/o_wechart_share

uniapp中使用微信jssdk

我与影子孤独终老i 提交于 2020-01-24 23:38:36
在做自定义分享时,用到了微信 jssdk ,记录一下。 声明:本文演示 uniapp 中使用 jssdk ,示例为网页自定义分享 npm 方式使用下方指令进行安装, 正文部分 为非 npm 方式。 npm install jweixin-module --save 1、下载导入jssdk文件 下载链接: https://www.lanzous.com/i8ujkvi 下载后放在项目中,具体放置位置可自行选择,比如直接放在根目录,或者放在 components 目录,如下是我的参考截图: 2、在项目中引用 为了方便使用,我们单独出一个微信相关的 js 文件,进行相关的初始化等操作。 wechat.js // 自己封装的 uni.request 工具类var request = require("./jsTools/request.js");var jweixin = require('./components/jweixin-module/index.js');export default { //判断是否在微信中 isWechat: function() { var ua = window.navigator.userAgent.toLowerCase(); if (ua.match(/micromessenger/i) == 'micromessenger') { //