利用剪切板,利用剪切板移动的四个步骤-ESG跨境

利用剪切板,利用剪切板移动的四个步骤

来源网络
来源网络
2022-07-05
点赞icon 0
查看icon 1131

利用剪切板,利用剪切板移动的四个步骤利用剪切板写在前面虽然在国内用whatsapp的人不多,但在香港等地方大部分还是用whatsapp,这一章我们来讨论讨论怎么添加表情到whatsapp,也可以看whatsapp的Guide它里面主要介绍的是利用它的lib来集成,有现成的案例,这里就不多说了。我们主要谈论下怎么利用剪切......

利用剪切板,利用剪切板移动的四个步骤




利用剪切板

写在前面

虽然在国内用whatsapp的人不多,但在香港等地方大部分还是用whatsapp,这一章我们来讨论讨论怎么添加表情到whatsapp,也可以看whatsapp的Guide

它里面主要介绍的是利用它的lib来集成,有现成的案例,这里就不多说了。

我们主要谈论下怎么利用剪切板来添加,也就是第二种方法。当然这添加的表情也是来自本地的,如果需要从server获取也可以,但相对来说会麻烦一点,但确实是可以的。

·图片的格式、大小等,请看guide,本文只讨论发国际快递whatsapp

开始

·在Info.plist中添加,

keyLSApplicationQueriesSchemes/key

  array

    stringwhatsapp/string

  /array

我们都知道LSApplicationQueriesSchemes的作用是为了双方测试。加这个可以判断你的手机是否安装了whatsapp。

判断安装,如果没有安装whatsapp return false;

func canSend() Bool {

    return UIApplication.shared.canOpenURL(URL(string: whatsapp://)!)

}

使用下面描述的结构将贴纸数据格式化为JSON对象,

{

ios_app_store_link : String,

android_play_store_link : String,

identifier : String,

name : String,

publisher : String,

tray_image : String, (Base64 representation of the PNG, not WebP, data of the tray image)

stickers : [

  {

   image_data : String, (Base64 representation of the WebP, not PNG, data of the sticker image)

   emojis : [String, String] (Array of emoji strings. Maximum of 3 emoji)

  }

]

}

·重要

tray_image使用PNG,而image_data使用WebP,再转成data string的形式

一次只能发快递一个贴纸包

·步骤

我们需要先将数据复制到Pasteboard

然后再打开whatsapp://stickerPack,它会跳到whatsapp,之后whatsapp会自己从Pasteboard中获取sticker

代码

import UIKit

struct Interoperability {

  // whatsapp guide 中说不要包含这个Id.

  private static let DefaultBundleIdentifier: String = WA.WAStickersThirdParty

  private static let PasteboardExpirationSeconds: TimeInterval = 60

  // 请保持这个.

  private static let PasteboardStickerPackDataType: String = net.whatsapp.thirdparty.stickerpack

  private static let WhatsAppURL: URL = URL(string: whatsapp://stickerPack)!

  static var iOSAppStoreLink: String = https://itunes.apple.com....;

  static var AndroidStoreLink: String = https://play.google.com/....;

  static func canSend() Bool {

    return UIApplication.shared.canOpenURL(URL(string: whatsapp://)!)

  }

  // 这个json 的格式就是上面的格式, 有一点值得说的是:tray_image / image_data 需要转成data string 来存储

  // 就是要把你的image 转化成data,再转换成String.

  static func send(json: [String: Any]) Bool {

    // 判断id 是否合法

    if let bundleIdentifier = Bundle.main.bundleIdentifier {

      if bundleIdentifier.contains(DefaultBundleIdentifier) {

        fatalError(Your bundle identifier must not include the default one.);

      }

    }

    let pasteboard: UIPasteboard = UIPasteboard.general

    var jsonWithAppStoreLink: [String: Any] = json

    jsonWithAppStoreLink[ios_app_store_link] = iOSAppStoreLink

    jsonWithAppStoreLink[android_play_store_link] = AndroidStoreLink

    guard let dataToSend = try  JSONSerialization.data(withJSONObject: jsonWithAppStoreLink, options: []) else {

      return false

    }

    // 从iOS 10 开始Pasteboard,有新的api

    if #available(iOS 10.0, *) {

      pasteboard.setItems([[PasteboardStickerPackDataType: dataToSend]], options: [UIPasteboardOption.localOnly: true, UIPasteboardOption.expirationDate: NSDate(timeIntervalSinceNow: PasteboardExpirationSeconds)])

    } else {

      pasteboard.setData(dataToSend, forPasteboardType: PasteboardStickerPackDataType)

    }

    DispatchQueue.main.async {

      if canSend() {

        if #available(iOS 10.0, *) {

          UIApplication.shared.open(WhatsAppURL, options: [:], completionHandler: nil)

        } else {

          UIApplication.shared.openURL(WhatsAppURL)

        }

      }

    }

    return true

  }

}

从server来

·如果表情是根据api get获得。一般表情包很小的,可以让server把表情包转换成data string,再派过来。以类似上面send方法中的json格式,然后也可以,这样的话server要做的事就会多一点。

·如果server不想转成data string,那可以让server先将表情包zip,call api get到后,再unzip.unzip后自己再转换成data string,这样也可以。


文章推荐
将 Azure 存储用于 SQL Server 备份和还原,azuresqlserver
领英大师如何导出领英好友资料,领英大师如何导出领英好友资料
开发者以实际案例谈策略游戏中玩家的四类行动
你一定要知道TikTok运营的技巧,教人运营tiktok


特别声明:以上文章内容仅代表作者本人观点,不代表ESG跨境电商观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与ESG跨境电商联系。

搜索 放大镜
韩国平台交流群
加入
韩国平台交流群
扫码进群
欧洲多平台交流群
加入
欧洲多平台交流群
扫码进群
美国卖家交流群
加入
美国卖家交流群
扫码进群
ESG跨境专属福利分享群
加入
ESG跨境专属福利分享群
扫码进群
拉美电商交流群
加入
拉美电商交流群
扫码进群
亚马逊跨境增长交流群
加入
亚马逊跨境增长交流群
扫码进群
亚马逊跨境增长交流群
加入
亚马逊跨境增长交流群
扫码进群
拉美电商交流群
加入
拉美电商交流群
扫码进群
ESG独家招商-PHH GROUP卖家交流群
加入
ESG独家招商-PHH GROUP卖家交流群
扫码进群
《韩国平台运营干货包》
《波兰allegro知识百科》
《Darty知识百科》
《法国Fnac知识百科》
《PEAKS 出海经营方法论白皮书》
2025跨境电商营销日历
《2024年全球消费趋势白皮书——美国篇》
《2024TikTok出海达人营销白皮书》
《Coupang自注册指南》
《eMAG知识百科》
通过ESG入驻平台,您将解锁
绿色通道,更高的入驻成功率
专业1v1客户经理服务
运营实操指导
运营提效资源福利
平台官方专属优惠

立即登记,定期获得更多资讯

订阅
联系顾问

平台顾问

平台顾问 平台顾问

微信扫一扫
马上联系在线顾问

icon icon

小程序

微信小程序

ESG跨境小程序
手机入驻更便捷

icon icon

返回顶部

【免费领取】全球跨境电商运营干货 关闭
进行中
进行中
《韩国平台运营干货包》
包含四个韩国干货报告:Coupang自注册指南、GMK站内推广指南、韩国大促热销品详细预测、韩国节日营销全攻略
免费领取
进行中
进行中
TikTok运营必备干货包
包含8个TikTok最新运营指南(市场趋势、运营手册、节日攻略等),官方出品,专业全面!
免费领取
进行中
进行中
韩国电商节日营销指南
10+韩国电商重要营销节点详细解读;全年度各节日热度选品助力引爆订单增长;8大节日营销技巧轻松撬动大促流量密码。
免费领取
进行中
进行中
【平台干货】eMAG知识百科
涵盖从开店到大卖6个板块:开店、运营、广告、选品、上架、物流
免费领取
进行中
进行中
全球平台详解——全球合集
涵括全球100+个电商平台的核心信息,包括平台精炼简介、竞争优势、热销品类、入驻要求以及入驻须知等关键内容。
立即领取
进行中
进行中
韩国coupang平台自注册指南
韩国Coupang电商平台从注册准备、提交申请到完成注册,开店全流程详细指引。
免费领取
进行中
进行中
2025跨境电商营销日历
包括传统中、外重要节日及重点电商营销节点还对营销关键市场、选品辅以说明,让你的365天安排的明明白白!
免费领取
进行中
进行中
全球平台详解——欧洲篇
涵盖20+欧洲电商平台,详细解读优势、入驻条件、热销品等
立即领取
进行中
进行中
【Fnac Darty直播】夏促爆单指南
1.夏季法国本土消费趋势解析;2.促销旺季来临,选品、备货、活动等筹备指南;3.案例: 单月狂揽66万欧,中国卖家如何把握平台红利
立即报名