calvinckho / capacitor-jitsi-meet Goto Github PK
View Code? Open in Web Editor NEWThis plugin is used to make video calls using Jitsi video platform (https://meet.jit.si) on iOS and Android using Ionic Capacitor.
This plugin is used to make video calls using Jitsi video platform (https://meet.jit.si) on iOS and Android using Ionic Capacitor.
Hi, I'm running the plugin on different Android Emulators ( different versions) after leaving the meeting on Android R looks like the plugin it not closing the call and if I try to connect into another meeting session the app it's displaying the following message :
I'm running IONIC-react with capacitor 2.0
All the rest of the Android versions are working correctly.
Let me know if I can provide something or help to solve this issue.
Thanks!
Hi,
Am trying to do online classes using capacitor jitsi meet in ionic and angular , in android device am able join meeting but other participants not displaying..plz help me
capacitor 3
and
implementation ('org.jitsi.react:jitsi-meet-sdk:3.10.2') { transitive = true }
Hello,
I got this error in browser uncaught exception: Jitsi does not have web implementation.
.
Works just fine on android (havn't test on iOS yet). Nice plugin by the way 👍
I had some issues getting the Google Play store to accept this build. I note there is information on 32/64 bit architecture in the Android section. However in order for Google to allow rollout I had to edit the proposed line of build.grade
from:
ndk {
abiFilters "armeabi-v7a", "x86"
}
to
ndk {
abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
If I am brutally honest, I don't know the full details of why this fixed things, however it did for me.
When I try to create an Archive build (Product -> Archive) Xcode build fails with "Could not find or use auto-linked framework 'JitsiMeet'".
Running and deploying the App in Simulator works fine without any errors.
Any idea?
Showing All Messages
Ld /Users/avaretosoftware/Library/Developer/Xcode/DerivedData/App-asgwkjcbcyekhxclqlvowinmxpgc/Build/Intermediates.noindex/ArchiveIntermediates/App/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/CapacitorJitsiMeet.framework/CapacitorJitsiMeet normal (in target 'CapacitorJitsiMeet' from project 'Pods')
cd /Users/avaretosoftware/frontend/avaretoapp/ios/App/Pods
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -target arm64-apple-ios11.0 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk -L/Users/avaretosoftware/Library/Developer/Xcode/DerivedData/App-asgwkjcbcyekhxclqlvowinmxpgc/Build/Intermediates.noindex/ArchiveIntermediates/App/BuildProductsPath/Release-iphoneos/CapacitorJitsiMeet -F/Users/avaretosoftware/Library/Developer/Xcode/DerivedData/App-asgwkjcbcyekhxclqlvowinmxpgc/Build/Intermediates.noindex/ArchiveIntermediates/App/BuildProductsPath/Release-iphoneos/CapacitorJitsiMeet -F/Users/avaretosoftware/Library/Developer/Xcode/DerivedData/App-asgwkjcbcyekhxclqlvowinmxpgc/Build/Intermediates.noindex/ArchiveIntermediates/App/BuildProductsPath/Release-iphoneos/Capacitor -F/Users/avaretosoftware/Library/Developer/Xcode/DerivedData/App-asgwkjcbcyekhxclqlvowinmxpgc/Build/Intermediates.noindex/ArchiveIntermediates/App/BuildProductsPath/Release-iphoneos/CapacitorCordova -F/Users/avaretosoftware/frontend/avaretoapp/ios/App/Pods/JitsiMeetSDK/Frameworks -filelist /Users/avaretosoftware/Library/Developer/Xcode/DerivedData/App-asgwkjcbcyekhxclqlvowinmxpgc/Build/Intermediates.noindex/ArchiveIntermediates/App/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/CapacitorJitsiMeet.build/Objects-normal/arm64/CapacitorJitsiMeet.LinkFileList -install_name @rpath/CapacitorJitsiMeet.framework/CapacitorJitsiMeet -Xlinker -rpath -Xlinker /usr/lib/swift -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -dead_strip -Xlinker -object_path_lto -Xlinker /Users/avaretosoftware/Library/Developer/Xcode/DerivedData/App-asgwkjcbcyekhxclqlvowinmxpgc/Build/Intermediates.noindex/ArchiveIntermediates/App/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/CapacitorJitsiMeet.build/Objects-normal/arm64/CapacitorJitsiMeet_lto.o -fembed-bitcode -Xlinker -bitcode_verify -Xlinker -bitcode_hide_symbols -Xlinker -bitcode_symbol_map -Xlinker /Users/avaretosoftware/Library/Developer/Xcode/DerivedData/App-asgwkjcbcyekhxclqlvowinmxpgc/Build/Intermediates.noindex/ArchiveIntermediates/App/BuildProductsPath/Release-iphoneos/CapacitorJitsiMeet -fobjc-arc -fobjc-link-runtime -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos -L/usr/lib/swift -Xlinker -add_ast_path -Xlinker /Users/avaretosoftware/Library/Developer/Xcode/DerivedData/App-asgwkjcbcyekhxclqlvowinmxpgc/Build/Intermediates.noindex/ArchiveIntermediates/App/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/CapacitorJitsiMeet.build/Objects-normal/arm64/CapacitorJitsiMeet.swiftmodule -framework Capacitor -framework Foundation -compatibility_version 1 -current_version 1 -Xlinker -dependency_info -Xlinker /Users/avaretosoftware/Library/Developer/Xcode/DerivedData/App-asgwkjcbcyekhxclqlvowinmxpgc/Build/Intermediates.noindex/ArchiveIntermediates/App/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/CapacitorJitsiMeet.build/Objects-normal/arm64/CapacitorJitsiMeet_dependency_info.dat -o /Users/avaretosoftware/Library/Developer/Xcode/DerivedData/App-asgwkjcbcyekhxclqlvowinmxpgc/Build/Intermediates.noindex/ArchiveIntermediates/App/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/CapacitorJitsiMeet.framework/CapacitorJitsiMeet
ld: warning: Could not find or use auto-linked framework 'JitsiMeet'
Undefined symbols for architecture arm64:
"OBJC_CLASS$_JitsiMeetView", referenced from:
objc-class-ref in JitsiMeetViewController.o
"OBJC_CLASS$_JitsiMeetConferenceOptions", referenced from:
objc-class-ref in JitsiMeetViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Hi,
I have some difficulty to hide lobby mode and mute (audio, video) for all participants
i try this setFeatureFlag(“lobby-mode.enabled”, withBoolean: false ) for lobby mode but not working
and for mute everyone i don’t see any features to configure that.
Thank you.
I was wondering about the app size. Since this plugin ads more than 30mb, but the official jitsi meet plugin is less than 10mb in size. (Though it becomes bigger once its loaded)
Is there something we can do to decrease the app size? Like having some of the sdk downloaded after loading for the first time.
Hi,
I was looking for a way to implement jitsi in one of our Capacitor + Ionic project. And this plugin is amazing, Thanks @calvinckho .
But the only thing which was not there was implementation of ringing UI to accept or reject the call whenever a call arrives. I tried to accomplish that by using cordova-call for showing accept/reject call UI. But was facing the problem because Jitsi Meet were also using callkit and it was conflicting with cordova-call, I was not able to capture onHangup event of cordova.
After some research I couldn't find the answer, so I updated the plugin's native code to disable the call-integration. But then after hanging-up cordova call I was not able to leave the conference (jitsi end call button have to be tapped again after terminating call from native UI). So I added a method to leave the conference.
I've created a PR for leaveConference function and an input option to change value for 'call-integration.enabled' and 'JMCallKitProxy.enabled' (which is changed by setFeatureFlag). It is only for iOS at the moment.
Please review it and please pardon me if I made any mistake in code as I don't know anything about swift language. Your help for this would be greatly appreciated.
Thanks.
I am getting the above issue while working with PIP mode,
Device: One Plus 7
OS: Oxygen OS
Android:: 10
I have configured the following activity in AndroidMainfest.xml
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" android:resizeableActivity="true" android:supportsPictureInPicture="true" android:windowSoftInputMode="adjustResize" android:launchMode="singleTask">
Hello,
I’m on an Ionic 5 App using capacitor-jitsi-meet to integrate JitsiMeet. It works very well, thanking @calvinckho .
Currently capacitor-jitsi-meet uses SDK version 3.5.0
My question is how updating / upgrading the SDK version 3.5.0 to —> 3.6.0. (for both android and ios) ?
I am not on the native and I want your help …
My thanks in advance.
This plugin works really well, thank you very much for sharing it.
I would like to know if it's possible to use the setFeatureFlag to remove the "invite" button? (And also removing other interface/configuration params as the recording button, etc). When using the official iframe API for websites there is a configOverwrite param for this, but I'm not able to find how to make it work on this plugin for Android.
Any guidance to accomplish this will be highly appreciated.
Could not resolve all task dependencies for configuration ':capacitor-jitsi-meet:debugCompileClasspath'.
Could not find org.jitsi.react:jitsi-meet-sdk:2.11.0.
Required by:
project :capacitor-jitsi-meet
Anything I miss?
Hi Calvin! The expected new features, avatarUrl, displayName and email, are not working on iOS - only on Android !?
Hi!
First of all, thanks for an amazing plugin!
I recently updated my app to Capacitor 3 and with it your plugin as well.
I noticed it came with a few UI modifications, a few too many for my need in fact.
If I want to remove a few options in the UI, could you assist me in that?
Kind regards!
Hello,
When I have installed this plugin and after initializing it in my app and try to build it. It always gives the error mentioned below.
"Type 'PluginRegistry' has no property 'Jitsi' and no string index signature."
Please help to resolve this issue.
I'm using it in this way with ionic4.
import { Component } from "@angular/core";
import { Plugins } from "@capacitor/core";
const { Jitsi } = Plugins; // Here Jitsi is undefined or not available in PluginRegistry
@component({
selector: "app-home",
templateUrl: "home.page.html",
styleUrls: ["home.page.scss"]
})
export class HomePage {
constructor() {
console.log("Plugins", Plugins);
}
async getJitsi(){
const result = await Jitsi.joinConference({
roomName: 'room1', // room identifier for the conference
url: 'https://meet.jit.si' // endpoint of the Jitsi Meet video bridge
});
}
}
Hi Calvin!
I gess the current implemenation dosen't support adding user information to the options (?)
I think it would be very common that an app has user information available in this context and it would be very convinient to simply add them to the options on entering a meeting room. As far as I know, the Jitsi Meet Api for the web support user information:
Jitsi.joinConference({ ..., userInfo: { email: '[email protected]', displayName: 'John Doe' }, ... });
Because I am not an android and ios expert, my question is: Do you think this can be simply added to extend the capacitor (ios & android) implemenation to support userInfo? If yes, can you please point me to the code where this needs to be added/changed?
For Android there seems to be an option property for userInfo:
public Builder setUserInfo(JitsiMeetUserInfo userInfo) { this.userInfo = userInfo; return this; }
https://github.com/jitsi/jitsi-meet/blob/master/android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetConferenceOptions.java#L258
Regards
Andreas
Thank you so much for this plugin @calvinckho, it's been amazing to use and opened up a whole new avenue of business for my app. Unfortunately good old Apple has ruined the fun after Xcode upgraded today to Version 11.4 (11E146) and I'm now getting the following errors when building. Apologies for the image, however there is way too much to convey in code.
EDIT
After some investigation the issue turned out to be related with me using Capacitor v3 while it is not yet supported
Original issue
Hi, sorry for asking this question again, I've seen the previous issues but in those people were trying to run Jitsi in browser, while I'm trying to get it working on Android emulator / device.
From my understanding (maybe I'm wrong), if I'm on a native device I should be able to start a Jitsi conference using the native SDK, while on the web I should use Jitsi iFrame / External API (just like you did here, link taken from one of the issues).
If you take a look at the screenshots below, the detected platform is indeed Android, yet I'm getting a warning in Logcat, saying "the web implementation is not available". Is this the expected behaviour or am I missing something?
As for the code it's just a basic setup, as I'm just starting with my app:
import React, { useState } from 'react';
import { Capacitor, Plugins } from '@capacitor/core';
import 'capacitor-jitsi-meet';
const { Jitsi } = Plugins;
const Home: React.FC = () => {
const [status1, setStatus1] = useState('');
const [status2, setStatus2] = useState('');
const [status3, setStatus3] = useState('');
const joinCall = async () => {
const result: any = await Jitsi.joinConference({
roomName: 'CapacitorTest1',
url: 'https://meet.jit.si',
displayName: 'CapacitorUser',
});
setStatus1(result.success);
window.addEventListener('onConferenceJoined', (event) => {
setStatus2('Conference joined');
});
window.addEventListener('onConferenceLeft', (event) => {
setStatus3('Conference joined');
});
};
return (
<div>
<button onClick={() => joinCall()}>Join</button>
<b>Platform: {Capacitor.getPlatform()}</b>
<h2>statuses</h2>
<pre>{JSON.stringify(status1, null, 2)}</pre>
<pre>{JSON.stringify(status2, null, 2)}</pre>
<pre>{JSON.stringify(status3, null, 2)}</pre>
</div>
);
};
export default Home;
Hi.
The implementation was a success, but it happens that when I want to share a screen, the users who see it cannot see anything.
I am seeing 2 versions with 1.3.12 being the latest.
Mind letting us know what the difference is?
Hi,
Thanks for this plugin @calvinckho , I've seen you upgraded Android to SDK 2.2.2 but not ios SDK, still stuck with 1.2x, why ?
With Xcode 10.2 I can't build for ios with an error swift compiler 5.0.1 can't import 4.2.1 module ... I try to force swift to be on 4.2.1, but it still hangs. Do you have any idea ?
Thanks
I think you should expand this plugin with following:
Hi @calvinckho
This is an amazing module, I've used it in iOS but I miss the Android version (because we are using Capacitor 2).
I'd like to try to help updating the module for Capacitor 2 for Android. However, I stillI haven't worked with any Capacitor plugins or Native Android apps yet. I've just been developing Ionic apps with Cordova and Capacitor for the past 2 years. There are some other people hereat the company that could also help.
Any tips on how should we start helping on that?
I want to implement a pip in ios but i can't get a solution
i use capacitor-jitsi-meet v2.2.1
and SDK 4.1.0
Any help
Hi @calvinckho , thanks for your work! I have a question for you, when I start share screen in my app all work perfectly, but I need to share the app where I start the share screen, and I dont have way to do this, how can I do that? Thanks!
Is there a way to switch camera ? because by default it uses font camera.
Hi there,
Im testing this good plugin in a ionic 4 app, I followed all the steps to build this on android app and im having the error when I want to start the app.
can you help me?
thanks!!
ERRO:
W/o.ionic.starte: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: io.ionic.starter, PID: 16681
java.lang.RuntimeException: Unable to start activity ComponentInfo{io.ionic.starter/io.ionic.starter.MainActivity}: android.view.InflateException: Binary XML file line #2 in io.ionic.starter:layout/bridge_layout_main: Binary XML file line #2 in io.ionic.starter:layout/bridge_layout_main: Error inflating class android.support.design.widget.CoordinatorLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3333)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3477)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2043)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7464)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:955)
Caused by: android.view.InflateException: Binary XML file line #2 in io.ionic.starter:layout/bridge_layout_main: Binary XML file line #2 in io.ionic.starter:layout/bridge_layout_main: Error inflating class android.support.design.widget.CoordinatorLayout
Caused by: android.view.InflateException: Binary XML file line #2 in io.ionic.starter:layout/bridge_layout_main: Error inflating class android.support.design.widget.CoordinatorLayout
Caused by: java.lang.ClassNotFoundException: android.support.design.widget.CoordinatorLayout
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:454)
at android.view.LayoutInflater.createView(LayoutInflater.java:813)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
at android.view.LayoutInflater.inflate(LayoutInflater.java:657)
at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
at com.getcapacitor.BridgeActivity.init(BridgeActivity.java:56)
at io.ionic.starter.MainActivity.onCreate(MainActivity.java:16)
at android.app.Activity.performCreate(Activity.java:7990)
at android.app.Activity.performCreate(Activity.java:7979)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3308)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3477)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2043)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7464)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:955)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.design.widget.CoordinatorLayout" on path: DexPathList[[zip file "/data/app/~~04EriqOAtqS5R4p7-3N9ZQ==/io.ionic.starter-_9YcTxsLPcFYV9KmEiLOGw==/base.apk"],nativeLibraryDirectories=[/data/app/~~04EriqOAtqS5R4p7-3N9ZQ==/io.ionic.starter-_9YcTxsLPcFYV9KmEiLOGw==/lib/x86, /data/app/~~04EriqOAtqS5R4p7-3N9ZQ==/io.ionic.starter-_9YcTxsLPcFYV9KmEiLOGw==/base.apk!/lib/x86, /system/lib, /system_ext/lib, /product/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:202)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 27 more
I followed all the steps in Docs. Iam using Ionic 4 with angular , Cap version 1.5.2
Firstly, thank you for maintaining this repository. It is of immense help.
I am looking to make call kit this work with call kit on both iOS and android, how could I make that happen, as I could not find any reference to CALL_INTEGRATION in the repository.
I'm trying to set this up in my Ionic 4/Capcitor app.
Here's how I have it implemented:
import { MessagesService } from './../../services/messages.service';
import { ModalController, NavParams } from '@ionic/angular';
import { Component, OnInit } from '@angular/core';
import { Plugins } from '@capacitor/core';
import 'capacitor-jitsi-meet';
const { Jitsi } = Plugins;
@Component({
selector: 'app-videochat',
templateUrl: './videochat.page.html',
styleUrls: ['./videochat.page.scss'],
})
export class VideochatPage implements OnInit {
conversationId: string;
remoteCalls: any = [];
constructor(
private modal: ModalController,
private navParams: NavParams,
private msg: MessagesService
) {
this.conversationId = this.navParams.get('conversationId');
console.warn('VideoChatModalLoaded', this.conversationId);
this.init();
}
async init() {
const result = await Jitsi.joinConference({
roomName: 'room1', // room identifier for the conference
url: 'https://meet.jit.si', // endpoint of the Jitsi Meet video bridge
channelLastN: '-1', // default -1. see config.js for more info on the last n feature
startWithAudioMuted: true, // start with audio muted
startWithVideoMuted: false // start with video muted
});
}
}
And in XCode, the error I'm getting is:
ERROR Error: Uncaught (in promise): TypeError: undefined is not an object (evaluating 'Jitsi.joinConference')
Any ideas? Thanks
Not sure what could be the problem, but the app cannot start in iOS. It crashes immediately.
Can you share what is your Podfile looks like after you follow step no.3 and 4 in https://github.com/calvinckho/capacitor-jitsi-meet/blob/master/ios/README.md. Thanks
hi there!!! I installed last version on another project 1.5.10 and when i build in android i m getting this error:
Could not find org.jitsi.react:jitsi-meet-sdk:3.3.0.
Required by:
project :capacitor-jitsi-meet
thanks for your help!
Currently, on IOS we are not able to minimize the call.
Also on android, I am able to see a small down chevron to minimize but doesn't work
Hi @calvinckho
I got this working on android but without picture in picture.
I was able to get it to work after adding to
With the following
android:supportsPictureInPicture="true"
considering that it is in the original jitsi meet repo, see :
https://github.com/jitsi/jitsi-meet/blob/master/android/app/src/main/AndroidManifest.xml#L19
and
https://github.com/jitsi/jitsi-meet/blob/master/android/sdk/src/main/AndroidManifest.xml#L36
I was wondering if I should make a pull request or if this was intentional and there is a step in the Android implementation that I do not correctly understand.
Any pointers would be appreciated.
When building in android I am getting this error:
error: package com.capacitor.jitsi.plugin does not exist
I followed this guide.
Here's my activity file:
package org.mycure.mobile.pxp;
import android.os.Bundle;
import com.getcapacitor.BridgeActivity;
import com.getcapacitor.Plugin;
import com.capacitor.jitsi.plugin.Jitsi;
import java.util.ArrayList;
public class MainActivity extends BridgeActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Initializes the Bridge
this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
// Additional plugins you've installed go here
// Ex: add(TotallyAwesomePlugin.class);
add(Jitsi.class);
}});
}
}
Dependencies
// main package.json
"@capacitor/core": "^2.4.7",
"capacitor-jitsi-meet": "^1.5.10",
// android package.json
"@capacitor/android": "2.4.7",
"@capacitor/core": "^2.4.7",
Relevant screenshots
Hi Calvin,
It seems that support for android screen sharing is merged to master.
It would be great to have this feature in your awesome plugin! 🥇
Any estimate when this will be implemented?
Hey i just used the latest push but its giving me the following error
Manifest merger failed : uses-sdk:minSdkVersion 21 cannot be smaller than version 23 declared in library [org.jitsi.react:jitsi-meet-sdk:2.10.0] C:\Users\Kazi\.gradle\caches\transforms-2\files-2.1\9defd01d565d1664d450e723db0395a1\jetified-jitsi-meet-sdk-2.10.0\AndroidManifest.xml as the library might be using APIs not available in 21 Suggestion: use a compatible library with a minSdk of at most 21, or increase this project's minSdk version to at least 23, or use tools:overrideLibrary="org.jitsi.meet.sdk" to force usage (may lead to runtime failures)
i tried using overidelibrary but the app crashes on start
UPDATED
Here is the error in the output
E/AndroidRuntime: FATAL EXCEPTION: main Process: io.ionic.starter, PID: 3524 java.lang.RuntimeException: Unable to start activity ComponentInfo{io.ionic.starter/io.ionic.starter.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void org.apache.cordova.CordovaPlugin.privateInitialize(java.lang.String, org.apache.cordova.CordovaInterface, org.apache.cordova.CordovaWebView, org.apache.cordova.CordovaPreferences)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3430) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3614) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:86) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2199) at android.os.Handler.dispatchMessage(Handler.java:112) at android.os.Looper.loop(Looper.java:216) at android.app.ActivityThread.main(ActivityThread.java:7625) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void org.apache.cordova.CordovaPlugin.privateInitialize(java.lang.String, org.apache.cordova.CordovaInterface, org.apache.cordova.CordovaWebView, org.apache.cordova.CordovaPreferences)' on a null object reference at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:171) at org.apache.cordova.PluginManager.startupPlugins(PluginManager.java:97) at org.apache.cordova.PluginManager.init(PluginManager.java:86) at com.getcapacitor.cordova.MockCordovaWebViewImpl.init(MockCordovaWebViewImpl.java:62) at com.getcapacitor.BridgeActivity.load(BridgeActivity.java:79) at com.getcapacitor.BridgeActivity.init(BridgeActivity.java:62) at com.getcapacitor.BridgeActivity.init(BridgeActivity.java:48) at io.ionic.starter.MainActivity.onCreate(MainActivity.java:16) at android.app.Activity.performCreate(Activity.java:7458) at android.app.Activity.performCreate(Activity.java:7448) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1286) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3409) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3614) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:86) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2199) at android.os.Handler.dispatchMessage(Handler.java:112) at android.os.Looper.loop(Looper.java:216) at android.app.ActivityThread.main(ActivityThread.java:7625) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987) I/Process: Sending signal. PID: 3524 SIG: 9
works good on a new app .The Issue arises when i install any other plugins
Regards Saif
Hey, Hope you are doing well. We are trying to use the PIP mode. But once we enter the pip mode, we can interact with the app without any issues but video and audio become very unstable/glitchy. is there any way to stabilize this issue. Because in the jitsi meet app, the pip mode is working fine. Please let us know if there is any solution. Thank you for creating this plugin.
Hi Guys,
Is this PWA compatible? or only native app?
Cheers, Rodrigo
Hi,
I implemented to the ionic 4 with ios app but when I tried accessing it it quickly close back and I saw a disconnect from the room
any missing steps?
Hello,
I am a Student and am new to Ionic Development. I am implementing an app with this plugin to join meetings with Jitsi meet SDK. I copy your usage in the README.md File and paste it into my code in Meet.tsx
file. I am using the @ionic/react
Plugin for creating the app. But it shows errors and cannot build my app. can you provide me with a sample app to see what's wrong?
Hi and thanks you for this useful plugin !
I am thinking about using JWT authentication on my self-hosted instance of jitsi thanks to this guide https://github.com/jitsi/lib-jitsi-meet/blob/master/doc/tokens.md
So, I need to set a token on client side. It is easy with the lib-jitsi-meet (for web implementation only): I just have to add it to the BOSH url as query param.
But with this capacitor plugin, I can't see any options to add the token.
I can see in Jitsi SDK that there is a property for that, but this property is never set in your code
My question is : Do you think I can just add the JWT as query param in your serverUrl exposed option ? If not, do you think you can add this as a new feature ?
Thanks !
Hello everyone, first of all thanks by the plugin.
I made a MVP using the plugin and noted that this options (startWithAudioMuted and startWithVideoMuted) are not working on IOS. On Android it's ok.
`async join(url: string) {
const roomName = url.substring(url.lastIndexOf('/') + 1);
const config = await this.storage.get();
if(!this.platform.is('hybrid')){
console.log('not hybrid sala ' + roomName);
console.log(config);
return;
}
await Jitsi.joinConference({
roomName, // room identifier for the conference
url: 'https://meet.jit.si', // endpoint of the Jitsi Meet video bridge
startWithAudioMuted: false, // start with audio muted
startWithVideoMuted: true, // start with video muted
displayName: config.name, // user's display name
callIntegrationEnabled: false, // this.platform.is('ios'), // enable call integration (CallKit on iOS, ConnectionService on Android)
token: null, // jwt authentication token
email: null, // user's email
avatarURL: null, // user's avatar url
channelLastN: null, // last N participants allowed to join
chatEnabled: true, // enable Chat feature
inviteEnabled: false, // enable Invitation feature
});
// console.log('STATUS DE ENTRADA', result.success);
window.addEventListener('onConferenceJoined', () => {
console.log('ENTREI NA SALA');
});
window.addEventListener('onConferenceLeft', () => {
console.log('SAIU DA SALA');
});
// const result: any = await Jitsi.leaveConference();
// console.log("leave status": result.success);
}`
Do i forget a thing?
Regards.
Probably is me the one whom did not find the right way to do this, but here goes my question... I would like to use a listener to record the time when somebody enters a conference and leaves a conference. Is tilt possible to use listeners with this plugin? By the way, I'm using Ionic 5.
Thank you!
Hello Calvin! Thanks for your great work with this plugin. I would like to make the following question, is there a way to hide from UI or via featureFlag the following buttons?
The buttons you see marked as red are: Enable lobby mode, silence all and help. Its critical for my project to get these three buttons hidden (at least two of them, enable lobby mode and silence all). I will be thankful if you can help me out as I can't go live because of this.
Once again, thank you very much for your time
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.