Mob social sharing integrated ShareSDK

How to integrate ShareSDk into the project when the project has already integrated SMSSDK, you need to import ShareSDk by creating a module, the main content is as follows:

1. Download ShareSDK

2. Introduce ShareSDK

3. Create MainLibs Module

4. Create OneKeyShare Module

5. Introduce Module in the project

6. Configure permissions

7. Configure Application

8. Enable ShareSDK

Download ShareSDk

Official website download address: ShareSDK , select the platform to share when downloading, as shown in the figure below:

The downloaded ShareSDk is decompressed as follows, the version downloaded here is ShareSDK-Android-3.0.0, as shown in the figure below:

Introduce ShareSDK

First, copy the ShareSDK.xml file in the ShareSDk to the assets directory in the project. Here, the ShareSDk is introduced by importing a module. The following two Libs are mainly imported into the ShareSDK, as shown in the following figure:

The following demonstrates the process of creating a Module:

Create the MainLibs Module

1. Create an Android Library in the newly created project, and click the link to demonstrate:

https://vdn6.vzuu.com/SD/fdff576e-1f53-11eb-852c-7e0dca767781.mp4?pkey=AAXODuFFKj0AGMK3ybcfdznXccoOg6I8MfqytIbgR034ueFaveIIJCJc6nJjhVVLGDQ5ZrX0GOF58wnQvSgm1PnZ&c=avc.0.0&f=mp4&pu=078babd7&bu=078babd7&expiration=1671082348&v=ks6

2. Delete all the files under main in the newly created Library, as well as the java and res folders and the AndroidManifest.xml file, as shown in the figure below:

3. Copy res, AndroidMainfest.xml, and libs (jar inside) in MainLibs to be imported to the corresponding folder, as shown in the figure below:

Import the structure in mainLibs as follows:

At this point, the module is created, and the sharing page provided by ShareSDK is used here, so OneKeyShare needs to be introduced.

Create OneKeyShare Module

The process of creating a Module is the same as above. Note that there is an additional src, which contains the java file to be used, so it must be referenced, as shown in the following figure:

Just copy the src folder to the main. If there is no error after the build, it means that the Module was created successfully. The following depends on the dependency relationship as the corresponding Module.

Introduce Module in the project

Here, OnKeyShareLibs depends on MainLibs, and only the app needs to depend on OnkeyShareLibs. Here is a demonstration of how OnKeyShareLibs depends on MainLibs. Click the link to demonstrate:

https://vdn6.vzuu.com/SD/186ba730-234e-11eb-8e0c-b212701f41e1.mp4?pkey=AAWWHddObq6YnVTuk9rGw_YSVbGYsFjVzY79n8afM6nRtdLgG2LThqviKeAfZD0Zl3Z3-g08aAK5fDW2lbgjnPGl&c=avc.0.0&f=mp4&pu=078babd7&bu=078babd7&expiration=1671082350&v=ks6

Then, the app depends on OnKeyShareLibs in the same way.

Configure permissions

The SMSSDK has been configured here before, just add the missing permissions. The following is all the permissions required to integrate the SMSSDK and ShareSDK at the same time, as follows:

   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

Configure Application

If SMSSDK has been configured before, then MobUIShell has been configured, just add the missing IntentFilter, and integrate SMSSDK and ShareSDK to share MobUIShell, as follows:

<activity
    android:name="com.mob.tools.MobUIShell"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:windowSoftInputMode="stateHidden|adjustResize">
    <intent-filter>
        <data android:scheme="tencent100371282" />
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>

</activity>

If your project integrates WeChat or WeChat Moments, please check the package path in the AndroidManifest.xml configuration file. You need to create a wxapi directory under the package directory and then place WXEntryActivity. If there is no such activity, the callback will check whether there is such an activity after WeChat sharing, and if there is no such activity, an error will be reported:

<activity     
    android:name=".yxapi.YXEntryActivity"     
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="keyboardHidden|orientation|screenSize" 
    android:exported="true"     
    android:screenOrientation="portrait" />

For details, please refer to: Android ShareSDK complete integration documentation

Enable SDK s

via AndroidManifest.xml

Add the following properties under the Application node:

android:name="com.mob.MobApplication"

Add meta parameters under the Application tag:

<!-- pass AndroidManifest configuration AppKey with AppSecret´╝îIf you choose to configure by code, you do not need to configure the following meta-data -->
<meta-data android:name="Mob-AppKey" android:value="yours AppKey"/>
<meta-data android:name="Mob-AppSecret" android:value="yours AppSecret"/>

code configuration

// Register your AppKey and AppSecret via code
MobSDK.init(context, "yours AppKey", "yours AppSecret");

Of the above two methods, only one of them can be used to initialize ShareSDK.

Call the sharing interface

private void showShare() {
     OnekeyShare oks = new OnekeyShare();
     //Close sso authorization
     oks.disableSSOWhenAuthorize(); 
     // title, used by Evernote, Email, Message, WeChat, Renren and Qzone
     oks.setTitle(getString(R.string.share));
     // titleUrl is the web link of the title, only used in Renren and Qzone
     oks.setTitleUrl("http://sharesdk.cn");
     // text is the shared text, all platforms require this field
     oks.setText("I am sharing text");
     // imagePath is the local path of the image, and platforms other than LinkedIn support this parameter
     oks.setImagePath("/sdcard/test.jpg");//Make sure this picture exists under SDcard
     // The url is only used in WeChat (including friends and circle of friends)
     oks.setUrl("http://sharesdk.cn");
     // comment is my comment on this sharing, it is only used in Renren and Qzone
     oks.setComment("I am testing comment text");
     // site is the name of the website sharing this content, it is only used in Qzone
     oks.setSite(getString(R.string.app_name));
     // siteUrl is the website address for sharing this content, it is only used in Qzone
     oks.setSiteUrl("http://sharesdk.cn");


    // Start sharing GUI
     oks.show(this);
}

Tags: Java Front-end Algorithm Android Operation & Maintenance developer

Posted by spooke2k on Tue, 20 Dec 2022 18:07:07 +1030