Skip to content

JackClown/react-native-ding-talk-share

 
 

Repository files navigation

react-native-ding-talk-share

钉钉分享 react native 版 SDK,支持钉钉授权

安装

npm install react-native-ding-talk-share --save
react-native link react-native-ding-talk-share

package.json 中添加 "dt_app_id": "<your_ding_talk_app_id>",

Android

首先在工程中创建 ddshare 的 package,然后在在该 package 下创建 DDShareActivity,内容如下

import android.app.Activity;
import android.os.Bundle;

import im.shimo.dingtalkshare.DingTalkShareModule;

public class DDShareActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        try {
            DingTalkShareModule.handleIntent(getIntent());
        } catch (Exception e) {
            e.printStackTrace();
        }
        finish();
    }
}

注意 package 名字,和 Activity 名字都不能改,因为钉钉是按名字去查找 Activity 的。

再在 AndroidManifest.xml 中添加如下内容:

<activity
    android:exported="true"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:launchMode="singleInstance"
    android:name=".ddshare.DDShareActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"></action>
        <category android:name="android.intent.category.DEFAULT"></category>
    </intent-filter>
</activity>

iOS

参考官方文档修改 LSApplicationQueriesSchemesURL Types

General > Linked Frameworks and Libraries > 添加 node_modules/react-native-ding-talk-share/ios/DTShareKit.framework

Build Settings > Framework Search Paths > 添加 $(SRCROOT)/../node_modules/react-native-ding-talk-share/ios no recursive

修改AppDelegate.m

在AppDeletegate.m增加如下代码

#import <React/RCTLinkingManager.h>

//...other code

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

  return [RCTLinkingManager application:application openURL:url sourceApplication:sourceApplication annotation:annotation];
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options{
  return [RCTLinkingManager application:application openURL:url options:options];
}

Usage

import DingTalk from 'react-native-ding-talk-share';

// share web page
result = await DingTalk.shareWebPage(link, wechatURIProcess(thumb || icon), title, content);

// share image
result = await DingTalk.shareImage(image);

// authority
result = await DingTalk.getAuthCode();

About

DingTalk react native SDK.Support DingTalk auth

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Objective-C 57.2%
  • Java 37.8%
  • JavaScript 2.6%
  • Ruby 2.4%