ApiRTC / ApiRTC-cordova-demo

Example of how to use ApiRTC into mobile application
14 stars 8 forks source link

ApiRTC Initialization error #14

Closed pengjm18 closed 3 years ago

pengjm18 commented 3 years ago

Hi Sir,

I think there is an issue with the sample application (it's stuck at 'initalizing...', I have encountered the following errors and have attached a log for your kind conveniences:

2020-09-05 01:46:11.872873+0800 ApiRTC[2694:559574] Apache Cordova native platform version 6.1.1 is starting. 2020-09-05 01:46:11.872958+0800 ApiRTC[2694:559574] Multi-tasking -> Device: YES, App: YES 2020-09-05 01:46:11.886750+0800 ApiRTC[2694:559574] Could not load the "LaunchStoryboard" image referenced from a nib in the bundle with identifier "com.apirtc.cordova" 2020-09-05 01:46:11.969593+0800 ApiRTC[2694:559574] WF: === Starting WebFilter logging for process ApiRTC 2020-09-05 01:46:11.969628+0800 ApiRTC[2694:559574] WF: _userSettingsForUser mobile: { filterBlacklist = ( ); filterWhitelist = ( ); restrictWeb = 1; useContentFilter = 0; useContentFilterOverrides = 0; whitelistEnabled = 0; } 2020-09-05 01:46:11.969658+0800 ApiRTC[2694:559574] WF: _WebFilterIsActive returning: NO 2020-09-05 01:46:11.978508+0800 ApiRTC[2694:559574] The preference key "AllowNewWindows" is not defined and will default to "FALSE" 2020-09-05 01:46:11.979678+0800 ApiRTC[2694:559574] The preference key "MediaPlaybackAllowsAirPlay" is not defined and will default to "TRUE" 2020-09-05 01:46:11.982299+0800 ApiRTC[2694:559574] WF: _userSettingsForUser mobile: { filterBlacklist = ( ); filterWhitelist = ( ); restrictWeb = 1; useContentFilter = 0; useContentFilterOverrides = 0; whitelistEnabled = 0; } 2020-09-05 01:46:11.982339+0800 ApiRTC[2694:559574] WF: _WebFilterIsActive returning: NO 2020-09-05 01:46:11.983311+0800 ApiRTC[2694:559574] The preference key "AllowBackForwardNavigationGestures" is not defined and will default to "FALSE" 2020-09-05 01:46:11.983356+0800 ApiRTC[2694:559574] The preference key "Allow3DTouchLinkPreview" is not defined and will default to "TRUE" 2020-09-05 01:46:11.983398+0800 ApiRTC[2694:559574] CDVWebViewEngine will reload WKWebView if required on resume 2020-09-05 01:46:11.983429+0800 ApiRTC[2694:559574] Using WKWebView 2020-09-05 01:46:11.983680+0800 ApiRTC[2694:559574] [CDVTimer][console] 0.044942ms 2020-09-05 01:46:11.983766+0800 ApiRTC[2694:559574] [CDVTimer][handleopenurl] 0.043988ms 2020-09-05 01:46:11.984776+0800 ApiRTC[2694:559574] [CDVTimer][intentandnavigationfilter] 0.849009ms 2020-09-05 01:46:11.984866+0800 ApiRTC[2694:559574] [CDVTimer][gesturehandler] 0.046015ms 2020-09-05 01:46:11.997661+0800 ApiRTC[2694:559574] [CDVTimer][file] 12.727976ms 2020-09-05 01:46:11.997968+0800 ApiRTC[2694:559574] iosrtcPlugin#pluginInitialize() 2020-09-05 01:46:11.999863+0800 ApiRTC[2694:559574] PluginGetUserMedia#init() 2020-09-05 01:46:12.000040+0800 ApiRTC[2694:559574] PluginRTCAudioController#setCategory() 2020-09-05 01:46:12.045182+0800 ApiRTC[2694:559574] [CDVTimer][iosrtcplugin] 47.470927ms 2020-09-05 01:46:12.045251+0800 ApiRTC[2694:559574] [CDVTimer][TotalPluginStartup] 61.663985ms 2020-09-05 01:46:12.316949+0800 ApiRTC[2694:559574] iosrtcPlugin#onReset() | cleanup 2020-09-05 01:46:12.438358+0800 ApiRTC[2694:559574] The preference key "AutoHideSplashScreen" is not defined and will default to "TRUE" 2020-09-05 01:46:12.509136+0800 ApiRTC[2694:559574] iosrtc registerGlobals() +0ms 2020-09-05 01:46:12.509270+0800 ApiRTC[2694:559574] iosrtc restoreCallbacksSupport() +1ms 2020-09-05 01:46:12.509328+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.505Z][DEBUG]apiRTC(UserAgent) Create UserAgent 2020-09-05 01:46:12.509384+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.505Z][DEBUG]apiRTC(ApiRTCManager) createWhiteBoard() 2020-09-05 01:46:12.509433+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.505Z][DEBUG]apiRTC(ApiCC_Methods) createWhiteBoard 2020-09-05 01:46:12.509492+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.505Z][DEBUG]apiRTC(ApiCCWhiteBoardClient) Loading apiCC.ApiCCWhiteBoardClient 2020-09-05 01:46:12.509546+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.505Z][DEBUG]apiRTC(ApiCCWhiteBoardClient) Setting Whiteboard disconnectionTimer to : 60000 2020-09-05 01:46:12.509624+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.505Z][DEBUG]apiRTC(ApiCCWhiteBoardClient) [Whiteboard] setCanvas() : 2020-09-05 01:46:12.509841+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.506Z][DEBUG]apiRTC(ApiCCWhiteBoardClient) [Whiteboard] setUserCursorColor() : invisible 2020-09-05 01:46:12.510011+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.506Z][DEBUG]apiRTC(ApiCC_Methods) activateScreenSharing 2020-09-05 01:46:12.510261+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.506Z][DEBUG]apiRTC(ApiCC_Methods) using apizee extension's Id 2020-09-05 01:46:12.510863+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.506Z][DEBUG]apiRTC(ApiCC_Methods) activateScreenSharing is only available for chrome Browser 2020-09-05 01:46:12.511791+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.506Z][DEBUG]apiRTC(ApiCC_Methods) Adding listener on type :mediaDeviceChanged 2020-09-05 01:46:12.511886+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.506Z][DEBUG]apiRTC(ApiCC_Methods) Adding listener on type :externalJsLoadingStatus 2020-09-05 01:46:12.511940+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.506Z][DEBUG]apiRTC(ApiCC_Methods) Adding listener on type :channelEvent 2020-09-05 01:46:12.512002+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.506Z][DEBUG]apiRTC(ApiCC_Methods) Adding listener on type :userMediaError 2020-09-05 01:46:12.513285+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.506Z][DEBUG]apiRTC(UserAgent) checkUACapabilities 2020-09-05 01:46:12.513596+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.506Z][DEBUG]apiRTC(UserAgent) WebRTC not compliant 2020-09-05 01:46:12.513665+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.506Z][DEBUG]apiRTC(UserAgent) qoS Stat not compliant 2020-09-05 01:46:12.513726+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.507Z][DEBUG]apiRTC(CloudApi) setCloudURL() 2020-09-05 01:46:12.513820+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.507Z][DEBUG]apiRTC(UserAgent) register() - Registration using prefix :apzkey: 2020-09-05 01:46:12.513918+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.507Z][DEBUG]apiRTC(CloudApi) getPreferredCCS to https://cloud.apizee.com 2020-09-05 01:46:12.513976+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.507Z][DEBUG]apiRTC(fetchRetry) fetchRetry 2020-09-05 01:46:12.514061+0800 ApiRTC[2694:559574] [2020-09-04T17:46:12.507Z][DEBUG]apiRTC(fetchRetry) wrappedFetch n: 100 2020-09-05 01:46:13.048107+0800 ApiRTC[2694:559574] CDVWebViewEngine shouldReloadWebView:: 2020-09-05 01:46:13.048624+0800 ApiRTC[2694:559574] CDVWebViewEngine shouldReloadWebView title: ApiRTC Cordova P2P Sample 2020-09-05 01:46:13.048726+0800 ApiRTC[2694:559574] CDVWebViewEngine shouldReloadWebView location: file:///private/var/containers/Bundle/Application/8436DB19-76EE-492F-94C4-3233CA57B3C3/ApiRTC.app/www/index.html 2020-09-05 01:46:13.048847+0800 ApiRTC[2694:559574] CDVWebViewEngine shouldReloadWebView reload: 0 2020-09-05 01:46:13.071668+0800 ApiRTC[2694:559574] iosrtc:videoElementsHandler refreshVideos() +0ms 2020-09-05 01:46:13.808786+0800 ApiRTC[2694:559574] [2020-09-04T17:46:13.804Z][DEBUG]apiRTC(Session) Create Session 2020-09-05 01:46:13.809154+0800 ApiRTC[2694:559574] [2020-09-04T17:46:13.806Z][DEBUG]apiRTC(Session) av apiRTCManager onEvent ... 2020-09-05 01:46:13.809396+0800 ApiRTC[2694:559574] [2020-09-04T17:46:13.807Z][DEBUG]apiRTC(ApiCC_Methods) Adding listener on type :channelEvent 2020-09-05 01:46:13.818966+0800 ApiRTC[2694:559574] [2020-09-04T17:46:13.818Z][DEBUG]apiRTC(ApiCC_Methods) Adding listener on type :channelEvent 2020-09-05 01:46:13.820896+0800 ApiRTC[2694:559574] [2020-09-04T17:46:13.820Z][DEBUG]apiRTC(Init) ccsServer is defined on init() 2020-09-05 01:46:13.821239+0800 ApiRTC[2694:559574] [2020-09-04T17:46:13.820Z][DEBUG]apiRTC(Init) bandwidthTestServer is defined : https://cloud.apizee.com 2020-09-05 01:46:13.821728+0800 ApiRTC[2694:559574] [2020-09-04T17:46:13.820Z][DEBUG]apiRTC(Init) userData : [object Object] 2020-09-05 01:46:13.822486+0800 ApiRTC[2694:559574] ERROR: [2020-09-04T17:46:13.821Z][ERROR]apiRTC(UserAgent) register() - ApiRTC Initialization error : ReferenceError: Can't find variable: apiRTC_sioLoader 2020-09-05 01:46:13.822750+0800 ApiRTC[2694:559574] ERROR: User agent registration failed [object Object]

Many thanks and looking forwards to hearing from you.

sachbryk commented 3 years ago

Hi, we can't reproduce your issue on Android or iOS, but I suggest to try to load apiRTC SDK after device ready event:

  1. Comment apiRTC loading in the www/index.html
  2. Load apiRTC dynamically in the www/js/index.js:

    function onDeviceReady() {
    setUIState('init');
    
    let cordova = window.cordova;
    if (device !== undefined && device.platform === 'iOS') {
        cordova.plugins.iosrtc.registerGlobals();
        //cordova.plugins.iosrtc.debug.enable('*', true);
    }
    
    if (device !== undefined && device.platform === 'Android') {
        let permissions = cordova.plugins.permissions;
    
        function checkVideoPermissionCallback(status) {
            if (!status.hasPermission) {
                let errorCallback = () => {
                    alert('Camera permission is not turned on');
                };
                permissions.requestPermission(
                    permissions.CAMERA,
                    (status) => {
                        if (!status.hasPermission) {
                            errorCallback();
                        }
                    },
                    errorCallback
                );
            }
        }
    
        function checkAudioPermissionCallback(status) {
            if (!status.hasPermission) {
                let errorCallback = () => {
                    alert('Audio permission is not turned on');
                };
                permissions.requestPermission(
                    permissions.RECORD_AUDIO,
                    (status) => {
                        if (!status.hasPermission) {
                            errorCallback();
                        }
                    },
                    errorCallback
                );
            }
        }
    
        permissions.hasPermission(permissions.CAMERA, checkVideoPermissionCallback, null);
        permissions.hasPermission(permissions.RECORD_AUDIO, checkAudioPermissionCallback, null);
    }
    
    let script = document.createElement('script');
    script.onload = () => {
        apiRTC.setLogLevel(10);
    
        ua = new apiRTC.UserAgent({
            uri: 'apzkey:myDemoApiKey',
        });
    
        let registerInformation = {
            cloudUrl: 'https://cloud.apizee.com',
        };
    
        ua.register(registerInformation)
            .then((session) => {
                console.log('User registered with session: ', session);
                session
                    .on('contactListUpdate', (updatedContacts) => {
                        console.log('contactListUpdate', updatedContacts);
                    })
                    .on('incomingCall', (invitation) => {
                        invitation.accept().then((call) => {
                            currentCall = call;
                            setCallListeners();
                            setUIState('call');
                        });
                    });
                connectedSession = session;
                setUIState('ready');
            })
            .catch(function (error) {
                console.error('User agent registration failed', error);
            });
    };
    script.src = 'https://cloud.apizee.com/apiRTC/apiRTC-latest.min.js';
    
    document.head.appendChild(script);
    }