yigiterdal adlı üyeden alıntı: mesajı görüntüle
Arkadaşlar merhaba,

Flutter ile ilgili bir sorun yaşıyorum. Daha doğrusu hakim olduğum bir dil olmadığı için videolardan bakarak bişeyler yaptım. Tabi videoların eskiliği vs. başıma bela oldu.

Öncelikle yapmak isteidğimi başaramadığım şeyi yazıyım. Ben webview ile web sitemi uygulamaya çekiyorum. Burada hiçbir sorun yok. Sonra onesignal ekledim. Bu da sorunsuz çalışuıyor. Ama ben onesignal'in her cihaza özel tanımladığı playerid denen id yi almak ve php sayfama post etmek istiyoırum. Bunun için bir çok eklentiyi denedim bir türlü beceremedim. Sonrasında cookie olarak yolladım yine olmadı. Enson webview linkinde get olarka veri yollayabildiğimi farketdim, ama burda da oluşturduğum değişkeni webview kısmına çekemiyor olmam beni çileden çıkardı Aşağıda kodları ekleyip bir uzman arkadaştan yardım istiyorum. Varsa POST ve GET işlemini kolay yapmanın yolu onu da önerebilirsiniz. Şimdiden herkese teşekkürler.

Aşağıdaki kodda userid olarak tanımlayıp yazdırdığım değişkeni link kısmında alamıyorum. En basitinden bunu yapsam şimdilik işimi görebilir.

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
import 'package:onesignal_flutter/onesignal_flutter.dart';
import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:dio/dio.dart';

void main() async {
runApp(PnlbaseApp());
}

class PnlbaseApp extends StatelessWidget {
// This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
return MaterialApp(
title: 'PNLBASE APP',
      home: PnlbaseAppPage(),
    );
  }

}

class PnlbaseAppPage extends StatefulWidget {
PnlbaseAppPage({Key? key}) : super(key: key);

  @override
  _PnlbaseAppPageState createState() => _PnlbaseAppPageState();

}

class _PnlbaseAppPageState extends State<PnlbaseAppPage> {
@override
  void initState() {
super.initState();

    OneSignal.shared.setLogLevel(OSLogLevel.verbose, OSLogLevel.none);
    OneSignal.shared.setAppId("APP-ID");
    OneSignal.shared.promptUserForPushNotificationPermission().then((accepted) {
print("Accepted permission: $accepted");
    });

    OneSignal.shared.getDeviceState().then((deviceState) {
print("OneSignal: device state: ${deviceState?.jsonRepresentation()}");
      var userid;
      userid = deviceState?.userId;
      print(userid);

    });

  }

@override
  Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
top: true,
        child: WebView(
initialUrl: "https://app.pnlbase.com/login?playerid",
          javascriptMode: JavascriptMode.unrestricted,
        ),
      ),
    );

  }
}
https://app.pnlbase.com/login?playerid olan kismi https://app.pnlbase.com/login?$playerid olarak duzeltin. Bir de onesignal player id asenkron calisip sonucu verir. Yani degiskenin degeri atanmadan webview yuklenir hale gelecektir muhtemelen. Sonuc olarak o degiskeni setledikten sonra webview i load edebilirsiniz.