android中设置lmargin简书,超详细React Native实现微信好友/朋友圈分享功能-Android/iOS双平台通用...

(一)前言

本文主要会涉及到以下内容:

微信开发者应用申请审核

安装配置微信分享库

微信好友/朋友圈功能实现

(二)应用申请审核

首先大家需要去微信开发平台去注册账号并且创建一个移动应用。(地址:https://open.weixin.qq.com)

ce5439dd1f52

ce5439dd1f52

开始创建移动应用,填写应用名称,应用名称以及中英文的信息,移动应用图标分别为28x28何108x108的png格式图标。

ce5439dd1f52

然后下一步填写iOS项目的bundle ID以及android项目的包名和应用签名。请注意应用签名获取需要安装一下获取签名信息的APK包,同时你的android应用也需要打包以后安装在手机上面,这样再去获取。具体获取方式见下面的图

ce5439dd1f52

下载获取第三方应用的签名信息apk

ce5439dd1f52

下载安装上面的签名信息包apk,然后在上面输入android项目的包名,点击获取签名信息

android项目的包名路径:android/app/build.gradle中的applicationId标签数据。

ce5439dd1f52

把上面的签名信息填写到下面的网页上面,点击提交审核即可。然后就是等待吧,官方说是7个工作日,不过一般也就是几个小时就可以通过审核了吧。

ce5439dd1f52

(三)安装配置微信分享库

github上面已经有封装微信分享的原生SDK库了,大家可以进行去下载安装,然后RN端就可以进行调用使用了。具体项目地址:https://github.com/weflex/react-native-wechat不过该库不仅支持微信分享,还支持微信登录,收藏以及微信支付的。但是登录,支付之类的功能需要开通开发者认证权限,那是需要300元一年的啦~

3.1.库安装方法:npm install react-native-wechat --save

ce5439dd1f52

3.2.Android版本安装配置方法

①.在android/settings.gradle文件中添加如下代码:

include':RCTWeChat'

project(':RCTWeChat').projectDir =newFile(rootProject.projectDir,'../node_modules/react-native-wechat/android')

②.在android/app/build.gradle文件中的dependencies标签中添加模块依赖

...

dependencies {

...

compile project(':RCTWeChat')// Add this line only.

}

③.在MainActivity.java文件中添加如下代码

importcom.theweflex.react.WeChatPackage;// Add this line before public class MainActivity

...

/**

* A list of packages used by the app. If the app uses additional views

* or modules besides the default ones, add more packages here.

*/

@Override

protectedList getPackages() {

returnArrays.asList(

newMainReactPackage()

,newWeChatPackage()// Add this line

);

}

④.在android项目中创建wxapi包名,在该包名底下创建WXEntryActivity.java类,该类用于去微信获取请求以及响应。

packageyour.package.wxapi;

importandroid.app.Activity;

importandroid.os.Bundle;

importcom.theweflex.react.WeChatModule;

publicclassWXEntryActivityextendsActivity{

@Override

protectedvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

WeChatModule.handleIntent(getIntent());

finish();

}

}

ce5439dd1f52

⑤.在AndroidManifest.xml文件中添加刚刚创建的Actiivty的配置

...

...

android:name=".wxapi.WXEntryActivity"

android:label="@string/app_name"

android:exported="true"

/>

⑥.混淆设置,在proguard-rules.pro中添加如下代码,当然如果不混淆就不安全啦

-keepclasscom.tencent.mm.sdk.** {

*;

}

3.3.iOS版本安装配置方法

①.我们之前已经执行过npm安装微信库了,接下来我们有两种方法进行链接第一种就是直接通过rnpm link,如下:

ce5439dd1f52

当然如果大家这种方案没有成功链接的话,可以采用手动方式了,具体教程请点击进入

②.接下来在xcode中添加部分库依赖(Link Binary With Libraries):

SystemConfiguration.framework

CoreTelephony.framework

libsqlite3.0

libc++

libz

ce5439dd1f52

③.选中Targets-info配置中URL Schema中配置刚申请下来的appid

ce5439dd1f52

④.为了iOS9.0的支持,在Targets-info中的Custom iOS Traget Properties标签中添加LSApplicationQueriesSchemes字段,值分别为wechat和weixin

ce5439dd1f52

⑤.接下来需要在APPDelete.m文件中做一下Linking的处理配置(具体有关Linking的配置请点击查看)

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url

sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

{

return[RCTLinkingManager application:application openURL:url

sourceApplication:sourceApplication annotation:annotation];

}

(四)微信好友/朋友圈分享实例

上面我们已经把基本安装配置已经讲解完成了,下面我们通过实例来进行演示一下,主要演示分享到好友/朋友圈的链接以及文本,关于更多的分享实例例如文件,图片,视频,语言等等可以查看项目的说明文件即可。

分享实例步骤:

注册应用

本文/朋友圈分享

Android测试应用需要打包测试

iOS版本直接测试即可,代码和下面一样

让我们来看一下实例代码,今天主要演示好友文本/链接以及朋友圈文本/链接分享:

/**

* Sample React Native App

* @flow

*/

importReact, { Component } from'react';

import{

AppRegistry,

StyleSheet,

Text,

View,

TouchableHighlight,

ToastAndroid,

} from'react-native';

var WeChat=require('react-native-wechat');

//import fs from 'react-native-fs';

classCustomButtonextendsComponent {

render() {

return(

style={styles.button}

underlayColor="#a5a5a5"

onPress={this.props.onPress}>

{this.props.text}

);

}

}

classRNWeChatDemoextendsComponent {

constructor(props) {

super(props);

//应用注册

WeChat.registerApp('wx8d560da3ba038e7e');

}

render() {

return(

微信好友/朋友圈分享实例

onPress={() => {

WeChat.isWXAppInstalled()

.then((isInstalled) => {

if(isInstalled) {

WeChat.shareToSession({type:'text', description:'测试微信好友分享文本'})

.catch((error) => {

ToastShort(error.message);

});

}else{

ToastShort('没有安装微信软件,请您安装微信之后再试');

}

});

}}

/>

onPress={() => {

WeChat.isWXAppInstalled()

.then((isInstalled) => {

if(isInstalled) {

WeChat.shareToSession({

title:'微信好友测试链接',

description:'分享自:江清清的技术专栏(www.lcode.org)',

type:'news',

})

.catch((error) => {

ToastShort(error.message);

});

}else{

ToastShort('没有安装微信软件,请您安装微信之后再试');

}

});

}}

/>

onPress={() => {

WeChat.isWXAppInstalled()

.then((isInstalled) => {

if(isInstalled) {

WeChat.shareToTimeline({type:'text', description:'测试微信朋友圈分享文本'})

.catch((error) => {

ToastShort(error.message);

});

}else{

ToastShort('没有安装微信软件,请您安装微信之后再试');

}

});

}}

/>

onPress={() => {

WeChat.isWXAppInstalled()

.then((isInstalled) => {

if(isInstalled) {

WeChat.shareToTimeline({

title:'微信朋友圈测试链接',

description:'分享自:江清清的技术专栏(www.lcode.org)',

type:'news',

})

.catch((error) => {

ToastShort(error.message);

});

}else{

ToastShort('没有安装微信软件,请您安装微信之后再试');

}

});

}}

/>

);

}

}

const styles = StyleSheet.create({

welcome: {

fontSize:20,

textAlign:'center',

margin:10,

},

button: {

margin:5,

backgroundColor:'white',

padding:15,

borderBottomWidth: StyleSheet.hairlineWidth,

borderBottomColor:'#cdcdcd',

},

});

AppRegistry.registerComponent('RNWeChatDemo', () => RNWeChatDemo);

运行效果:

ce5439dd1f52

ce5439dd1f52

ce5439dd1f52

(五)最后总结

今天带着大家从最基本开始一起来实现一下微信分享功能,当然除了分享文本和链接以外,还可以分享语音,视频,图片,文件等等。这些相关的使用API可以参考上面WeChat库中的文档即可。

刚创建的React Native交流6群:426762904,欢迎各位大牛,React Native技术爱好者加入交流!同时博客右侧欢迎微信扫描关注订阅号,移动技术干货,精彩文章技术推送!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522531.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【干货合集】看完这些干货,再说你因为“怕蛇”,所以学不好Python!

摘要: 作为编程语言界的“当红小生”,Python不仅能够承担起Web项目的重任,还能够用于写自动化脚本帮助你做很多事情,不仅能够用于机器学习和神经网络的研究,还能够用于最具有业务价值的数据分析方面,无论什…

蜕变!网易轻舟微服务这波操作,始于异构融合、源于中台!

戳蓝字“CSDN云计算”关注我们哦!作者|刘晶晶提及中台,无人不知。从概念诞生于阿里到如今高居神坛之上,整个行业无一不在频繁建设中,不可否认,TA带来的ICT变革远远超过了字面含义。深入实践我们感受到,有了…

首次公开!菜鸟弹性调度系统的架构设计

摘要: 为什么菜鸟需要弹性调度? 在弹性调度出现之前,菜鸟整体资源使用率都处于一个比较低的水平,这是因为: 1.在线应用一般是通过单机性能压测,并且结合经验预估业务流量的方式来确定所需容器数量。这种方式…

springboot listener_看完这份springboot 全套面试提升宝典,面试不带怕的

简介:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发…

“Java跌落向下,Python奋斗向前”,程序员:看哭了...

还记得被Java统治的时代吗?最近,这个格局已经被悄然打破,正是被来自曾经的小弟,新晋网红Python给硬生生拽下神坛。对此,Java曾表示强烈质疑,最近一份数据榜单悄悄来了!PLPY 8月榜单官宣&#xf…

注册docker hub账号

官网地址:https://hub.docker.com

浏览器渲染流水线解析与网页动画性能优化

摘要:若干年前,我写过一篇介绍浏览器渲染流水线的文章 - How Rendering Work (in WebKit and Blink),这篇文章,一来部分内容已经过时,二来缺少一个全局视角来对流水线整体进行分析,所以打算重新写一篇新的文…

努比亚手机浏览器 安全证书失效_浏览器提示“该站点安全证书的吊销信息不可用”的解决方法-...

最近有用户遇到在Win10系统下浏览网页时,系统一直会提示安全警报,提示内容为“该站点安全证书的吊销信息不可用。是否继续?”,那么该如何解决呢?其实这大部分都是网页和浏览器的一些问题造成的,下面小编就为…

2021浙江高考宁波四中成绩查询,2021浙江高考成绩查询时间公布 几号能查分

2021年浙江省高考成绩26日左右可查询,分段填报志愿日程确定啦。下面一起来看看吧。第一段什么时候报志愿普通类提前录取和第一段、艺术类第一批和第二批第一段、体育类第一段同时填报志愿,填报时间为6月29日至6月30日。普通类第二段、艺术类第二批第二段…

还在用 Dockerfile 部署 Spring Boot?out 啦!试试谷歌的大杀器 Jib

之前gblfy和大家分享过一篇将 Spring Boot 项目部署到远程 Docker 上的文章: 一键部署 Spring Boot 到远程 Docker 容器 但是这种部署有一个问题,就是一个小小的 helloworld 构建成镜像之后,竟然都有 660 MB,这就有点过分了&…

常见的Hadoop十大应用误解

戳蓝字“CSDN云计算”关注我们哦!作者 | 大数据架构师本文链接:https://www.jianshu.com/p/08255fa980e4Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力…

解析DataWorks数据集成中测试连通性失败问题

摘要: 大家好,这里和大家分享的是DataWorks数据集成中测试连通性失败的排查思路。与测试连通性成功与否的相关因素有很多,本文按照多个因素逐步排查,最终解决问题,希望大家以后再遇到此类问题,请参考此文&a…

带有下标的赋值维度不匹配_不稳定的期权时间价值

教科书上的期权公式:期权价格内在价值时间价值。这是个静态的表述,假设标的、波动率在到期前不在变化。实际上,在存续期间,这块时间价值将会受到“方向、波动率、时间”等维度影响。期权作为时间消耗性金融衍生品,若期…

Kubernetes的Device Plugin设计解读

摘要: Kubernetes的生态地位已经确立,可扩展性将是其发力的主战场。异构计算作为非常重要的新战场,Kubernetes非常重视。而异构计算需要强大的计算力和高性能网络,需要提供一种统一的方式与GPU、FPGA、NIC、InfiniBand等高性能硬件…

美国专利机构榜单:华为、京东方进前20名;印度巨头信实与微软结盟;三星发布 1.08 亿像素传感器,小米参与合作……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 特斯联完成20亿元C1轮融资&a…

本地安装Docker

docker官网:https://hub.docker.com/?overlayonboarding

阿里云上Kubernetes集群联邦

摘要: kubernetes集群让您能够方便的部署管理运维容器化的应用。但是实际情况中经常遇到的一些问题,就是单个集群通常无法跨单个云厂商的多个Region,更不用说支持跨跨域不同的云厂商。这样会给企业带来一些担忧,如何应对可用区级别…

边缘检测robert原理_在操作机器视觉检测过程中,遇到检测精度的难题怎么办?_西旺科技...

随着自动化行业发展,机器视觉技术的应用已经十分广泛。但是在一些机器视觉检测项目中,很多客户遇到了检测精度的难题。例如:检测加工零件的外形尺寸、内外径,要求精度到10um。目前很多配置选择500万的相机,理论上是可以…

引以为戒,特斯拉Kubernetes控制台被黑客攻击

摘要: 特斯拉公司惨遭“毒手”是因为其Kubernetes平台没有设置密码保护。 点此查看原文:http://click.aliyun.com/m/43609/ 几个月前RedLock公司工作人员发现:数百个Kubernetes管理控制台无需密码即可访问,即直接公开暴露在互联网…

来华30载,这些都是Oracle的神来之笔……

戳蓝字“CSDN云计算”关注我们哦!作者|刘晶晶出色的数据掌控可以为企业带来极大的业务领先与竞争优势,这一点毋庸置疑,尽管在面对海量数据管理时依然会出现诸多问题与挑战。如此说来那些在数据管理方面战略到位的企业们究竟有何杀手锏&#x…