12 Commits

Author SHA1 Message Date
Tiago Daniel Jacobs
852ad7aa08 feat(stun-turn): add parameter to receive stun/turn servers (code format version bump) 2022-11-08 22:35:13 -03:00
Tiago Daniel Jacobs
913c68182a feat(stun-turn): add parameter to receive stun/turn servers (code format) 2022-11-08 22:33:55 -03:00
Tiago Daniel Jacobs
651d8cfa88 feat(stun-turn): add parameter to receive stun/turn servers 2022-11-08 22:24:59 -03:00
Tiago Daniel Jacobs
f39160a5f0 fix(rn): change user agent - bump version 2022-11-08 21:59:53 -03:00
Tiago Daniel Jacobs
a02fe3f8d1 fix(rn): change user agent - bump version 2022-11-08 21:50:19 -03:00
Tiago Daniel Jacobs
61f35bd9e0 fix(rn): change user agent 2022-11-08 21:46:56 -03:00
Tiago Jacobs
628d1a0449 Update README.md 2022-08-22 14:15:50 -03:00
Tiago Daniel Jacobs
19e7d97374 fix(media): fix microphone and camera permissions 2022-08-21 23:29:15 -03:00
Tiago Daniel Jacobs
e6826bebeb Merge remote-tracking branch 'origin/main' 2022-08-16 09:13:01 -03:00
Tiago Daniel Jacobs
7c6676d2c8 fix(rn): fix react warning about main thread setup 2022-08-16 09:11:10 -03:00
Tiago Daniel Jacobs
52fb51687a fix(group): fix typo in group name 2022-08-16 09:03:34 -03:00
Tiago Jacobs
e200c0e7e0 Project re-initialization with latest react native (#19)
* Project re-initialization with latest react native (npx create-react-native-library)
2022-08-16 08:08:40 -03:00
17 changed files with 53 additions and 40 deletions

View File

@@ -3,7 +3,7 @@ Embed BigBlueButton in any react native project with BigBlueButton Tablet SDK. U
## Installation
```sh
npm install bigbluebutton-tablet-sdk
yarn add bigbluebutton-tablet-sdk
```
## Usage

View File

@@ -4,7 +4,7 @@
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>group.org.bigbluebutton.tablet</string>
<string>group.org.bigbluebutton.tablet.example</string>
</array>
</dict>
</plist>

View File

@@ -4,7 +4,7 @@
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>group.org.bigbluebutton.tablet</string>
<string>group.org.bigbluebutton.tablet.example</string>
</array>
</dict>
</plist>

View File

@@ -25,18 +25,13 @@
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
<dict/>
<key>NSCameraUsageDescription</key>
<string>We will capture your camera if you join with video.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>
<key>NSMicrophoneUsageDescription</key>
<string>We will capture your microphone if you join with full audio.</string>
<key>UIBackgroundModes</key>
<array>
<string>audio</string>

View File

@@ -11,6 +11,6 @@ class Constants {
public static var broadcastExtensionBundleId="org.bigbluebutton.tablet.sdk.example.03DE7B1E.BigBlueButtonTabletSdkBroadcastExample";
// This is used to allow both applications (main and broadcast) to share information
public static var appGroupName="group.corg.bigbluebutton.tablet";
public static var appGroupName="group.org.bigbluebutton.tablet.example";
}

View File

@@ -1,11 +1,11 @@
PODS:
- bigbluebutton-tablet-sdk (0.1.0):
- bigbluebutton-tablet-sdk (0.1.30):
- bigbluebutton-tablet-sdk-common
- React-Core
- bigbluebutton-tablet-sdk-broadcast-upload-extension (0.1.0):
- bigbluebutton-tablet-sdk-broadcast-upload-extension (0.1.30):
- bigbluebutton-tablet-sdk-common
- WebRTC-lib
- bigbluebutton-tablet-sdk-common (0.1.0):
- bigbluebutton-tablet-sdk-common (0.1.30):
- WebRTC-lib
- boost (1.76.0)
- DoubleConversion (1.1.6)
@@ -439,9 +439,9 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/yoga"
SPEC CHECKSUMS:
bigbluebutton-tablet-sdk: 75396b742cee8de39425235492859a8c966c5019
bigbluebutton-tablet-sdk-broadcast-upload-extension: 5e10242be5e7fd521fc1ea4b51f1d38c6d4b3487
bigbluebutton-tablet-sdk-common: edb98af2ffc59a1e2360b74569f69f8880960c3e
bigbluebutton-tablet-sdk: 33dabe9a50e2fb7b86bafb84df9ca4dffa285a6f
bigbluebutton-tablet-sdk-broadcast-upload-extension: 45c6c203b87ee9374149053b4c4e283633218516
bigbluebutton-tablet-sdk-common: 143b4f84f290b50b95076f7f26cfe56e6cc4fafe
boost: a7c83b31436843459a1961bfd74b96033dc77234
DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662
FBLazyVector: a7a655862f6b09625d11c772296b01cd5164b648

View File

@@ -9,7 +9,10 @@
#import "React/RCTBridgeModule.h"
@interface RCT_EXTERN_REMAP_MODULE(BBBN_FullAudioService, FullAudioServiceManager, NSObject)
RCT_EXTERN_METHOD(createFullAudioOffer)
RCT_EXTERN_METHOD(createFullAudioOffer: (NSString *)stunTurnJson)
RCT_EXTERN_METHOD(setFullAudioRemoteSDP: (NSString *)remoteSDP)
RCT_EXTERN_METHOD(addFullAudioRemoteIceCandidate: (NSString *)remoteCandidate)
+ (BOOL)requiresMainQueueSetup { return NO; }
@end

View File

@@ -18,8 +18,8 @@ class FullAudioServiceManager: NSObject {
var fullAudioService: FullAudioService = FullAudioService( )
// React native exposed method (called when user click the button to share screen)
@objc func createFullAudioOffer() -> Void {
logger.info("createFullAudioOffer")
@objc func createFullAudioOffer(_ stunTurnJson:String) -> Void {
logger.info("createFullAudioOffer \(stunTurnJson)")
Task.init {
let optionalSdp = await self.fullAudioService.createOffer()
if(optionalSdp != nil){

View File

@@ -11,7 +11,10 @@
RCT_EXTERN_METHOD(stopScreenShareBroadcastExtension)
RCT_EXTERN_METHOD(initializeScreenShare)
RCT_EXTERN_METHOD(createScreenShareOffer)
RCT_EXTERN_METHOD(createScreenShareOffer: (NSString *)stunTurnJson)
RCT_EXTERN_METHOD(setScreenShareRemoteSDP: (NSString *)remoteSDP)
RCT_EXTERN_METHOD(addScreenShareRemoteIceCandidate: (NSString *)remoteCandidate)
+ (BOOL)requiresMainQueueSetup { return NO; }
@end

View File

@@ -53,8 +53,8 @@ class ScreenShareServiceManager: NSObject {
}
// React native exposed method (called when user click the button to share screen)
@objc func createScreenShareOffer() -> Void {
logger.info("createScreenShareOffer")
@objc func createScreenShareOffer(_ stunTurnJson:String) -> Void {
logger.info("createScreenShareOffer \(stunTurnJson)")
// Send request of SDP to the broadcast upload extension
// TIP - the handling of SDP response is done in observer2 of BigBlueButtonSDK class

View File

@@ -1,6 +1,6 @@
{
"name": "bigbluebutton-tablet-sdk",
"version": "0.1.30",
"version": "0.1.35",
"description": "test",
"main": "lib/commonjs/index",
"module": "lib/module/index",
@@ -12,6 +12,8 @@
"lib",
"android",
"ios",
"ios-common",
"ios-broadcast-upload-extension",
"cpp",
"bigbluebutton-tablet-sdk.podspec",
"!lib/typescript/example",

View File

@@ -66,7 +66,7 @@ export const BigBlueButtonTablet = ({
onMessage={(msg) =>
handleWebviewMessage(thisInstanceId, webViewRef, msg)
}
applicationNameForUserAgent="BBBMobile"
applicationNameForUserAgent="BigBlueButton-Tablet"
allowsInlineMediaPlayback={true}
mediaCapturePermissionGrantType={'grant'}
onLoadEnd={(content: any) => {

View File

@@ -14,15 +14,17 @@ nativeEmitter.addListener('onFullAudioOfferCreated', (sdp) => {
});
// Entry point of this method
function createFullAudioOffer(instanceId: Number) {
function createFullAudioOffer(instanceId: Number, stunTurnJson: String) {
return new Promise((res, rej) => {
// store the resolver for later call (when event is received)
resolve = res;
try {
console.log(`[${instanceId}] - >nativeCreateFullAudioOffer`);
console.log(
`[${instanceId}] - >nativeCreateFullAudioOffer (${stunTurnJson})`
);
// call native swift method that triggers the broadcast popup
nativeCreateFullAudioOffer();
nativeCreateFullAudioOffer(stunTurnJson);
} catch (e) {
rej(`Call to nativeCreateFullAudioOffer failed`);
}

View File

@@ -14,15 +14,17 @@ nativeEmitter.addListener('onScreenShareOfferCreated', (sdp) => {
});
// Entry point of this method
function createScreenShareOffer(instanceId: Number) {
function createScreenShareOffer(instanceId: Number, stunTurnJson: String) {
return new Promise((res, rej) => {
// store the resolver for later call (when event is received)
resolve = res;
try {
console.log(`[${instanceId}] - >nativeCreateScreenShareOffer`);
console.log(
`[${instanceId}] - >nativeCreateScreenShareOffer (${stunTurnJson})`
);
// call native swift method that triggers the broadcast popup
nativeCreateScreenShareOffer();
nativeCreateScreenShareOffer(stunTurnJson);
} catch (e) {
rej(`Call to nativeCreateScreenShareOffer failed`);
}

View File

@@ -6,8 +6,8 @@ const FullAudioService = NativeModules.BBBN_FullAudioService;
// FullAudioService.initializeFullAudio();
// }
export function createFullAudioOffer() {
FullAudioService.createFullAudioOffer();
export function createFullAudioOffer(stunTurnJson: String) {
FullAudioService.createFullAudioOffer(stunTurnJson);
}
export function setFullAudioRemoteSDP(remoteSDP: string) {

View File

@@ -6,8 +6,8 @@ export function initializeScreenShare() {
ScreenShareService.initializeScreenShare();
}
export function createScreenShareOffer() {
ScreenShareService.createScreenShareOffer();
export function createScreenShareOffer(stunTurnJson: String) {
ScreenShareService.createScreenShareOffer(stunTurnJson);
}
export function setScreenShareRemoteSDP(remoteSDP: string) {

View File

@@ -50,10 +50,16 @@ export function handleWebviewMessage(
promise = initializeScreenShare(instanceId);
break;
case 'createFullAudioOffer':
promise = createFullAudioOffer(instanceId);
promise = createFullAudioOffer(
instanceId,
JSON.stringify(data?.arguments[0])
);
break;
case 'createScreenShareOffer':
promise = createScreenShareOffer(instanceId);
promise = createScreenShareOffer(
instanceId,
JSON.stringify(data?.arguments[0])
);
break;
case 'setScreenShareRemoteSDP':
promise = setScreenShareRemoteSDP(instanceId, data?.arguments[0].sdp);