Веб-сайт показывает пустую белую страницу при перенаправлении со ссылки Facebook messenger на мобильных устройствах IOS в браузере Safari

#laravel #facebook #facebook-messenger

Вопрос:

Веб-сайт https://jeeveslive.com/ имеет функцию обмена сообщениями в Facebook Messenger. На веб-сайте есть 4 типа сообщений, из которых сообщения о концертах работают нормально, но остальные сообщения показывают пустую белую страницу.

Общий доступ работает нормально. Сообщения публикуются в facebook messenger, но когда другой пользователь открывает свой мессенджер и нажимает на ссылку для публикации, он перенаправляется на пустую белую страницу на веб-сайте, вместо того, чтобы перейти на страницу профиля человека, создавшего сообщение.

Он отлично работает на устройствах Android, также отлично работает в браузере Mac Book Safari, но не работает на мобильных устройствах IOS, использующих браузер Safari. Вот код

 public function facebookshare(Request $request, $id)
{
    $arr = $this->shareTrait($request, $id, 'fb', 'Newsfeed' );

    return view('site.newsfeed.facebookshare')->withTitle(' | Newsfeed Share')->withModel($arr['model'])->withV($arr['v']);
}
 

Код для общей черты

 public function shareTrait($request, $id, $type, $modelName, $route = null)
{

    $model = 'App\Models\'.$modelName;
    $model = $model::findOrFail($id);

    if($modelName == 'Newsfeed'){
        $route = getNewsfeedRedirectUrl($model->user->username);
    }

    if($type == 'fb'){
        $agent = new Agent();
        if($agent->browser() == "Safari" amp;amp; $modelName != "Gig"){
            return redirect()->route('sharedPostDetails',['id'=>$id])->send();
        }
        $ref = Request::server('HTTP_REFERER');
        if( ($request->fbclid) || (strpos($ref,'m.facebook') > -1) ){
            return redirect($this->getRouteUrl($model, $route, $modelName))->send();
        }
    }
    else if($type == 'tw'){  
        if(endsWith(URL::previous(),'t.co/') || endsWith(URL::previous(),'?amp=1') ){
            return redirect($this->getRouteUrl($model, $route, $modelName))->send();
        }
    }
    else if($type == 'lk'){
        if(strpos(URL::previous(),'linkedin.com/') !== false){
            return redirect($this->getRouteUrl($model, $route, $modelName))->send();
        }
    }

    isBlocked($model->user_id);

    $v = ($request->v) ? '?v='.$request->v : '';

    return [ 'model' => $model, 'v' => $v ];

}
 

Решение, которое я применил:
Здесь я уже применил условие, что если пользователь использует браузер Safari, то он должен быть перенаправлен на страницу сведений о публикации в качестве решения, но это не сработало в браузере safari на устройствах IOS.