react-native-yunpeng-alipay(iOS)配置

1,341 阅读2分钟

配置方法见npm

一般用 react-native link react-native-yunpeng-alipay 直接链接原生,如果链接不成功,就需要手动配置了。

以下拆分一下手动配置ios板块的步骤:

1. 双击打开react native一级项目下的ios/xxx.xcworkspace,将node_modules/react-native-yunpeng-alipay/ios下的AlipayModule.xcodeproj拖到你的XCode工程下的Libraries分组里。

(官方说明:如果该库包含原生代码,那么在它的文件夹下一定有一个.xcodeproj文件。把这个文件拖到你的XCode工程下(通常拖到XCode的Libraries分组里))

2. 在你刚才打开的主工程文件里,点击主工程文件,打开Targets,选择Build Phases,然后把刚才所添加进去的xxx.xcodeproj下的Products文件夹中的静态库文件(.a文件),拖到Link Binary With Libraries组内。

3. 同时要将以下的库,添加到Link Binary With Libraries里。

CoreMotion.framework  
CoreTelephony.framework  
libc++  
libz  

4. 在Target/info/URL type增加URL Schema作为你APP去访问别人APP的唯一标志符(id)

对于需要嵌入签名文件才能接入的app来说(例如微信),URL Schema就是你去别人平台申请的签名文件字符串(作为访问的唯一标志)。
对于不需要嵌入签名文件的就能访问的app来说(例如支付宝),URL Schema8 可以 直接写你自己的包名。

反正,不管需不需要嵌入签名文件调用,你都不能将URL Schema写成被接入的那个app的identifier,因为URL Schema是让别人调用你一个标志符,如果你将URL Schema写成被接入的那个app的identifier,那么当接入完毕时可能无法回调,也可能,当被接入的app并未在你的手机上下载时,你的app无法唤起被接入app的网页端。
举例如下:
例如接入支付宝, 我们最开始将URL Schema也写成了alipay,导致我们在未安装支付宝APP的情况下,无法唤起支付宝的网页支付...sad,找了很久才发现是这个原因导致的。

点此了解URL Schema的相关知识

5. 在主工程的AppDelegate.m,添加如下代码:

#import "AlipayModule.h"
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
  [AlipayModule handleCallback:url];
  return YES;
}

用法如下:

import Alipay from 'react-native-yunpeng-alipay';
 
Alipay.pay("支付的签名信息").then(function(data){
    console.log(data);
}, function (err) {
    console.log(err);
});

差不多就完毕了。错误之处望指正。