国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Flutter 應(yīng)用間跳轉(zhuǎn)應(yīng)用,實(shí)現(xiàn)喚起第三方App

這篇具有很好參考價(jià)值的文章主要介紹了Flutter 應(yīng)用間跳轉(zhuǎn)應(yīng)用,實(shí)現(xiàn)喚起第三方App。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Flutter 應(yīng)用間跳轉(zhuǎn)應(yīng)用,實(shí)現(xiàn)喚起第三方App



前言

最近因?yàn)楣ぷ餍枨螅隽藨?yīng)用間跳轉(zhuǎn)應(yīng)用,因?yàn)槭且粋€(gè)flutter新手,所以在工作之余隨便總結(jié)記錄一下。


一、應(yīng)用間跳轉(zhuǎn)應(yīng)用場(chǎng)景

1.使用第三方用戶登錄,跳轉(zhuǎn)到需授權(quán)的App。如QQ登錄,微信登錄等。需要用戶授權(quán),還需要"返回到調(diào)用的程序,同時(shí)返回授權(quán)的用戶名、密碼"。
2.應(yīng)用程序推廣,跳轉(zhuǎn)到另一個(gè)應(yīng)用程序(本機(jī)已經(jīng)安裝),或者跳轉(zhuǎn)到iTunes并顯示應(yīng)用程序下載頁面(本機(jī)沒有安裝)。
3.第三方支付,跳轉(zhuǎn)到第三方支付App,如支付寶支付,微信支付。
4.內(nèi)容分享,跳轉(zhuǎn)到分享App的對(duì)應(yīng)頁面,如分享給微信好友、分享給微信朋友圈、分享到微博。
5.顯示位置、地圖導(dǎo)航,跳轉(zhuǎn)到地圖應(yīng)用。
6.使用系統(tǒng)內(nèi)置程序,跳轉(zhuǎn)到打電話、發(fā)短信、發(fā)郵件、Safari打開網(wǎng)頁等內(nèi)置App中。

等等

二、配置URL Scheme

跳轉(zhuǎn)應(yīng)用的實(shí)現(xiàn),需要使用 uni_links 第三方庫來協(xié)助完成外部頁面的 Scheme(在想要跳轉(zhuǎn)到的應(yīng)用中引入uni_links庫,并配置Scheme)

Android 配置

安卓支持兩種app links 和deep links.
app links需要是scheme需要指定https,并且要增加hosts文件assetlinks.json,還需要服務(wù)端配合。
deep links可以自定義scheme,也不要服務(wù)端的驗(yàn)證.

在AndroidManifest.xml中添加

<!-- Deep Links -->
  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <!-- Accepts URIs that begin with YOUR_SCHEME://YOUR_HOST -->
    <data
      android:scheme="[YOUR_SCHEME]"
      android:host="[YOUR_HOST]" />
  </intent-filter>

  <!-- App Links -->
  <intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <!-- Accepts URIs that begin with https://YOUR_HOST -->
    <data
      android:scheme="https"
      android:host="[YOUR_HOST]" />
  </intent-filter>
</activity>

ios配置

ios也支持兩種,“Universal Links” 和 “Custom URL schemes”,兩個(gè)功能和android類似。

Universal Link需要在ios/Runner/Runner.entitlements添加一個(gè)com.apple.developer.associated-domains環(huán)境,

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <!-- ... other keys -->
  <key>com.apple.developer.associated-domains</key>
  <array>
    <string>applinks:[YOUR_HOST]</string>
  </array>
  <!-- ... other keys -->
</dict>
</plist>

Custom URL schemes在Info.plist中添加

<key>CFBundleURLTypes</key>
	<array>
		<dict>
			<key>CFBundleTypeRole</key>
			<string>Editor</string>
			<key>CFBundleURLName</key>
			<string>Two You</string>
			<key>CFBundleURLSchemes</key>
			<array>
				<string>tyfapp</string>
			</array>
		</dict>
	</array>

提示:當(dāng)需要被拉起的 App 沒有被安裝時(shí),這個(gè)鏈接就不會(huì)生效;

uni_links使用

它可以幫助我們幫助我們獲取進(jìn)入的鏈接,它有兩個(gè)方法供我們使用。一個(gè)是獲取初始鏈接,另一個(gè)是監(jiān)聽。
初始鏈接方法:

   Future<void> _handleInitialUri() async {
    // In this example app this is an almost useless guard, but it is here to
    // show we are not going to call getInitialUri multiple times, even if this
    // was a weidget that will be disposed of (ex. a navigation route change).
    if (!_initialUriIsHandled) {
      _initialUriIsHandled = true;
      _showSnackBar('_handleInitialUri called');
      try {
        final uri = await getInitialUri();
        if (uri == null) {
          print('no initial uri');
        } else {
          print('got initial uri: $uri');
        }
        if (!mounted) return;
        setState(() => _initialUri = uri);
      } on PlatformException {
        // Platform messages may fail but we ignore the exception
        print('falied to get initial uri');
      } on FormatException catch (err) {
        if (!mounted) return;
        print('malformed initial uri');
        setState(() => _err = err);
      }
    }
  }

監(jiān)聽鏈接變化:

void _handleIncomingLinks() {
    if (!kIsWeb) {
      // It will handle app links while the app is already started - be it in
      // the foreground or in the background.
      _sub = uriLinkStream.listen((Uri? uri) {
        if (!mounted) return;
        print('got uri: $uri');
        setState(() {
          _latestUri = uri;
          _err = null;
        });
      }, onError: (Object err) {
        if (!mounted) return;
        print('got err: $err');
        setState(() {
          _latestUri = null;
          if (err is FormatException) {
            _err = err;
          } else {
            _err = null;
          }
        });
      });
    }
  }

銷毀監(jiān)聽:

@override
  void dispose() {
    _sub?.cancel();
    super.dispose();
  }

三、實(shí)現(xiàn)跳轉(zhuǎn)

上面我們配置好了android和ios,現(xiàn)在只需要我們通過我們配置的deeplink來打開跳轉(zhuǎn)App了。

1.引入庫

url_launcher: ^6.1.8

2. 跳轉(zhuǎn)

打開瀏覽器

const url = 'https://flutter.io';
 if (await canLaunch(url)) {
      await launch(url);
 } else {
      throw 'Could not launch $url';
 }

打開外部APP

代碼如下(示例):

final Uri launch = Uri.parse('tyfapp://');
bool isInstall = await canLaunchUrl(launch);
 if(isInstall){
   print('已安裝,跳轉(zhuǎn)app');
   await launchUrl(launch);
 }else{
   print('未安裝,做出提示或者到下載頁面');
 }

提示:ios跳轉(zhuǎn)到App Store可通過這樣實(shí)現(xiàn):

final url = "https://itunes.apple.com/cn/app/id1380512641"; // id 后面的數(shù)字換成自己的應(yīng)用 id 就行了
launchUrlString(url);

H5跳轉(zhuǎn)App

第一種

window.location = 'wechat://';

第二種

<a href="wechat://"></a>const a = document.createElement('a')
a.href = "wechat://";
document.body.appendChild(a);
a.click();

四、結(jié)尾

這樣就完成了打開第三方app了,我只是隨便簡(jiǎn)單記錄了一下,后續(xù)繼續(xù)完善補(bǔ)充。文章來源地址http://www.zghlxwxcb.cn/news/detail-744490.html

到了這里,關(guān)于Flutter 應(yīng)用間跳轉(zhuǎn)應(yīng)用,實(shí)現(xiàn)喚起第三方App的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • webview跳轉(zhuǎn)第三方小程序

    webview跳轉(zhuǎn)第三方小程序

    場(chǎng)景,uni-app實(shí)現(xiàn)的微信小程序嵌套webview(h5頁面),從webview跳轉(zhuǎn)到第三方小程序 問題: 一、webview不可以直接跳轉(zhuǎn)到第三方小程序(navigateToMiniProgram) 二、首次通過webview點(diǎn)擊跳轉(zhuǎn)到第三方小程序,出現(xiàn)彈窗即將打開\\\"XXX\\\"小程序,點(diǎn)擊允許跳轉(zhuǎn)到第三方小程序,然后從第三方返

    2024年02月12日
    瀏覽(95)
  • flutter-第三方組件

    flutter-第三方組件

    卡片折疊?stacked_card_carousel ?掃一掃組件?qr_code_scanner ?權(quán)限處理組件?permission_handler 生成二維碼組件?pretty_qr_code ?角標(biāo)組件?badges 動(dòng)畫組件?animations app更新??app_installer 帶緩存的圖片組件?cached_network_image 密碼輸入框?collection 圖片保存?image_gallery_saver 自定義滑塊?image_gal

    2024年02月13日
    瀏覽(26)
  • vscode 無法跳轉(zhuǎn)第三方安裝包

    vscode 無法跳轉(zhuǎn)第三方安裝包

    場(chǎng)景:使用 vscode 寫代碼時(shí), 第三方的安裝包無法使用 ctrl + 左鍵 ,點(diǎn)擊進(jìn)入查看, 不方便源碼查看 解決辦法: 使用快捷鍵 Ctrl + Shift + P , 進(jìn)入命令搜索框 搜索 setting.json 編輯 setting.json 文件, 下邊的兩個(gè)值配置自己的 python 環(huán)境地址 重啟 vscode , 可發(fā)現(xiàn)可以跳轉(zhuǎn)第三方包

    2024年02月11日
    瀏覽(90)
  • 微信小程序跳轉(zhuǎn)第三方頁面

    使用web-view,官方說明web-view 承載網(wǎng)頁的容器。會(huì)自動(dòng)鋪滿整個(gè)小程序頁面, 個(gè)人類型的小程序暫不支持使用 具體實(shí)現(xiàn)思路: 1、首先需要配置小程序的公眾平臺(tái)當(dāng)中的開發(fā)管理選項(xiàng)的業(yè)務(wù)域名,具體看官方指引 2、在小程序當(dāng)中新建一個(gè)頁面文件來單獨(dú)存放web-view組件,sr

    2024年02月11日
    瀏覽(87)
  • Flutter 第三方 flutter_screenutil(屏幕適配)

    Flutter 第三方 flutter_screenutil(屏幕適配)

    推薦一篇寫的非常不過的文章:Flutter應(yīng)用框架搭建(二)屏幕適配 iPhone 12 mini 初始化 - 設(shè)置參考尺寸1 ScreenUtilInit 初始化 - 設(shè)置方式2 ScreenUtil.init 可以在每個(gè)頁面設(shè)置 使用這種方式只需在使用 flutter_screenutil 前進(jìn)行初始化即可,一般放在根路由即第一個(gè)頁面加載的時(shí)候進(jìn)行初始化

    2024年02月19日
    瀏覽(17)
  • Flutter:第三方常用庫整理

    Flutter:第三方常用庫整理

    隨著Flutter的不斷學(xué)習(xí),接觸了不少第三方的庫。因此打算進(jìn)行簡(jiǎn)單的整理。 簡(jiǎn)介 一個(gè)強(qiáng)大的Dart/FlutterHTTP客戶端,支持全局配置, 攔截器、表單數(shù)據(jù)、請(qǐng)求取消、文件上傳/下載、 超時(shí)和自定義適配器等。 官方地址 https://pub-web.flutter-io.cn/packages/dio 簡(jiǎn)單使用 flutter:網(wǎng)絡(luò)請(qǐng)求

    2024年02月16日
    瀏覽(30)
  • 微信小程序使用nginx跳轉(zhuǎn)第三方url

    微信小程序使用nginx跳轉(zhuǎn)第三方url

    先在微信公眾平臺(tái)配置號(hào)域名 ? 服務(wù)器域名和業(yè)務(wù)域名都配置好 然后微信小程序使用 web-view標(biāo)簽進(jìn)行跳轉(zhuǎn) nginx配置:域名必須有ssl證書,不然還是訪問不了 sub_filter如果nginx沒裝的話需要裝一下 首先需要git安裝 ngx_http_substitutions_filter_module git沒安裝:yum -y install git 安裝了:

    2024年02月10日
    瀏覽(93)
  • 微信小程序跳轉(zhuǎn)第三方H5的方法

    使用web-view標(biāo)簽進(jìn)行跳轉(zhuǎn) 首先建立一個(gè)新的頁面,這個(gè)頁面就是為了第三方H5頁面準(zhǔn)備的。 在index.wxml中,寫以下代碼 在index.js中,寫一下代碼 在需要點(diǎn)擊跳轉(zhuǎn)第三方頁面的地方,js文件中用以下代碼實(shí)現(xiàn)跳轉(zhuǎn) 以上代碼就實(shí)現(xiàn)了跳轉(zhuǎn)第三方鏈接/H5頁面 項(xiàng)目中大部分時(shí)候,需要

    2024年02月11日
    瀏覽(108)
  • 微信小程序獲取當(dāng)前位置與跳轉(zhuǎn)第三方地圖

    1. 先在app.json添加配置 2. 獲取定位權(quán)限,打開地址選點(diǎn) 3. 如果要打開跳轉(zhuǎn)第三方地圖的內(nèi)置地圖

    2024年02月15日
    瀏覽(86)
  • 小程序開發(fā)webview組件不跳轉(zhuǎn)第三方網(wǎng)頁的問題

    小程序開發(fā)webview組件不跳轉(zhuǎn)第三方網(wǎng)頁的問題

    最近開發(fā)小程序,想要跳轉(zhuǎn)第三方的網(wǎng)頁,使用webview組件,src屬性可以直接給到域名,然后進(jìn)行跳轉(zhuǎn),但是這個(gè)組件對(duì)個(gè)人類型的小程序時(shí)不支持的,開發(fā)環(huán)境下,不校驗(yàn)合法域名的選項(xiàng)勾選后,是可以進(jìn)行跳轉(zhuǎn)的,包括真機(jī)調(diào)試也是沒問題的,但是在生產(chǎn)環(huán)境上線后就不行

    2024年02月13日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包