問題

我正在使用一個名為flutter_InAppBrowser 1.2.1的庫.在這個庫的幫助下,我正在開啟瀏覽器,它第一次工作得很好,但在此之後,如果我們嘗試再次開啟瀏覽器,它會丟擲錯誤

[ERROR:flutter / lib / ui / ui_dart_state.cc(148)]未處理的Exception:Exception:[Error:無法開啟 https://www.abcd.com/xyzal.html !瀏覽器已經開啟.]

行動所使用的程式碼如下。

 Center(
child: InkWell(
onTap: () {
chromeSafariBrowser
    .open(url, options: {
"addShareButton": true,
"toolbarBackgroundColor": "#FFFFFF",
"dismissButtonStyle": 1,
"preferredBarTintColor": "#FFFFFF",
"instantAppsEnabled": false
}, optionsFallback: {
"toolbarTopBackgroundColor": "#FFFFFF",
"closeButtonCaption": "Close"
});
},
child: Text(
'Read More...',
style: TextStyle(
color: Color(0xFF38969A),
fontSize: 16.0,
decoration: TextDecoration.underline,
fontWeight: FontWeight.bold),
),
))


class MyInAppBrowser extends InAppBrowser {
  @override
  Future onLoadStart(String url) async {
    print("

Started $url

");
  }

  @override
  Future onLoadStop(String url) async {
    print("

Stopped $url

");
  }

  @override
  void onLoadError(String url, int code, String message) {
    print("

Can't load $url.. Error: $message

");
  }

  @override
  void onExit() {
    print("

Browser closed!

");
  }
}

MyInAppBrowser inAppBrowserFallback = new MyInAppBrowser();

class MyChromeSafariBrowser extends ChromeSafariBrowser {
  MyChromeSafariBrowser(browserFallback) : super(browserFallback);

  @override
  void onOpened() {
    print("ChromeSafari browser opened");
  }

  @override
  void onLoaded() {
    print("ChromeSafari browser loaded");
  }

  @override
  void onClosed() {
    print("ChromeSafari browser closed");
  }
}

MyChromeSafariBrowser chromeSafariBrowser =
    new MyChromeSafariBrowser(inAppBrowserFallback);
 

任何幫助將不勝感激, 謝謝。

  最佳答案

我找到了解決方案,在這裡釋出它,因為它可能在將來幫助某人.

解決方案是不呼叫chromeSafariBrowser.open(...)直接呼叫MyChromeSafariBrowser(inAppBrowserFallback).Open(...).將建立新例項,所有例項都將順利工作.不知道它是否是正確的解決方案.

例如:

 onTap: ()  {
MyChromeSafariBrowser(inAppBrowserFallback)
    .open(newsData.url, options: {
"addShareButton": true,
"toolbarBackgroundColor": "#FFFFFF",
"dismissButtonStyle": 1,
"preferredBarTintColor": "#FFFFFF",
"instantAppsEnabled": false
}, optionsFallback: {
"toolbarTopBackgroundColor": "#FFFFFF",
"closeButtonCaption": "Close"
});
},
 

  相同標籤的其他問題

flutterbrowserinappbrowser