uniapp の一般的な開発スキル

目次

1. ミニプログラムの共有

2. iOSの下部距離に適応する

3. プラットフォームの条件付きコンパイル


1. ミニプログラムの共有

WeChatには友人やモーメントを共有する機能がデフォルトで備わっていないため、追加する必要がある場合は別途コードを設定する必要があります。設定も非常に簡単で、対応するライフサイクルを記述するだけで済みます(同時に追加する必要があります)。データとしてのレベル)。

WeChatの友達と共有する

	onShareAppMessage(){
			return {
				 title: '自定义分享标题',
			}
		},

 デフォルトではパラメータを入力せずに共有機能を使用することもできますが、デフォルトのパラメータに従って実行されます。

パラメータ名 タイプ 必須 説明する プラットフォームの違いについて説明
タイトル はい タイトルを共有する
パス はい ページ パスは / で始まる完全なパスである必要があります。注: 京東ミニ プログラムの先頭に「/」を追加しないでください。 QQ mini プログラムはサポートしていません
画像URL いいえ 共有アイコンのパスは、ローカル ファイル パス、コード パッケージ ファイル パス、またはネットワーク イメージ パスにすることができます。PNG と JPG をサポートします。表示画像のアスペクト比は5:4です
コンテンツ いいえ Baidu ミニ プログラムは次のように動作します: コンテンツの共有; Alipay ミニ プログラムは次のように動作します: Zhikou コマンド コピーライティング Baidu ミニ プログラム、Alipay ミニ プログラム
説明 いいえ カスタム共有の説明 Alipay ミニ プログラム、Douyin ミニ プログラム、JD ミニ プログラム
bgImgUrl いいえ QR コードを共有するための背景画像をカスタマイズします。推奨サイズは 750*950 (ネットワーク画像パス) Alipay アプレット
クエリ いいえ QQ アプレットのクエリ文字列は、key1=val1&key2=val2 の形式である必要があります。この転送されたメッセージから入力すると、qq.getLaunchOptionSync() または qq.onShow() を通じて起動パラメータのクエリを取得できます。 QQアプレット
テンプレートID いいえ 開発者のバックエンドによって設定された共有マテリアル テンプレート ID 抖音ミニプログラム
mpId いいえ WeChat アプレット ID。このシナリオはこのシナリオで使用されます。WeChat に共有した後、ユーザーは共有カードをクリックして、appid に対応する WeChat アプレットに入り、WeChat アプレットへの排水を実現します。 京東ミニプログラム
タイプ 番号 いいえ 転送フォーム (0 - WeChat ミニ プログラムの正式バージョン、1 - WeChat ミニ プログラムの開発バージョン、2 - WeChat ミニ プログラムの試用版、JD App 9.0.0 以降またはその他の値が最初に決定されるため、入力されていない場合はURLパラメータの有無、存在する場合は共有を開きます URLに対応するページを表示します、そうでない場合はデフォルトでJDミニプログラムの公式共有中間ページが生成されます クリックするとJD内の対応するミニプログラムにジャンプしますアプリ。) 京東ミニプログラム
mpPath いいえ WeChat ミニ プログラム パス 京東ミニプログラム
チャネル いいえ チャンネル (デフォルトの WeChat 友達、WeChat モーメントは書かないでください) 京東ミニプログラム
URL いいえ h5 リンク アドレス (h5 共有を記入します。記入されていない場合はデフォルトの中央ページ) 京東ミニプログラム
成功 関数 いいえ インターフェイス呼び出しが成功した場合のコールバック関数 Alipay ミニ プログラム、Baidu ミニ プログラム
失敗 関数 いいえ インターフェース呼び出し失敗時のコールバック関数 Alipay ミニ プログラム、Baidu ミニ プログラム
完了 関数 いいえ インターフェイス呼び出しの終了時のコールバック関数 (呼び出しが成功したか失敗したかに関係なく実行されます) 百度ミニプログラム

 WeChat モーメントを共有する

onShareTimeline() {},

ただし、共有および設定できるのは個別のページのみなので、ページごとに共有したい場合は、ミックスインをグローバルに登録することができます。

utils/mixin.js

export default {
	data() {
		return {}
	},
	//1.发送给朋友
	onShareAppMessage() {},
	//2.分享到朋友圈
	onShareTimeline() {},
}

main.js

// 导入并挂载全局的分享方法
import share from './utils/mixin.js'
Vue.mixin(share)

2. iOSの下部距離に適応する

<view class="flexC submit ">
	  <view class="flexC">提交</view>
</view>
.flexC {
		display: flex;
		align-items: center;
		justify-content: center;
	}
	
	.submit {
		position: fixed;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 100rpx;
		background: #fff;
		view {
			border-radius: 10px;
			width: 90%;
			height: 80rpx;
			background: skyblue;
			color: #fff;
		}
	}

これは非常に一般的なシナリオです。ユーザーの操作を容易にするために、ボタンはページの下部に固定されています。iOS の下部にはメニューの水平線があり、それが隠れているため、Android では通常どおりに表示されます。 

クラス名を追加するだけです

<view class="flexC submit iosPadding">
	<view class="flexC">提交</view>
</view>

<style lang="scss">
.iosPadding {
	padding-bottom: constant(safe-area-inset-bottom); /* 兼容 iOS < 11.2 */
	padding-bottom: env(safe-area-inset-bottom); /* 兼容 iOS >= 11.2 */
}
</style>
  • safe-area-inset-left: 安全領域と左境界の間の距離
  • safe-area-inset-right: 安全領域と右境界の間の距離
  • safe-area-inset-top: 安全領域と上部境界の間の距離
  • safe-area-inset-bottom: 安全領域と底部境界の間の距離

効果を実感

3. プラットフォームの条件付きコンパイル

uniapp はマルチターミナル開発フレームワークであるため、一連のコードを複数のアプリケーションにコンパイルするには、条件付きコンパイルの使用を避けることはできません。

条件付きコンパイルとは何ですか?

例: h5 にパッケージ化したいが、小さいプログラムにもパッケージ化したい h5 でパブリック アカウントを共有したいが、小さいプログラムではこれらの jssdk パラメーターを取得する必要はありません。条件付きコンパイルを使用すると、h5 プラットフォームで特定の関数のみを実行できます。コードのスニペット。

固有の言語: 異なるプラットフォームでは異なるコードが実行されます。

公式:条件付きコンパイルでは、特別なコメントをマークとして使用します。コンパイル中に、コメント内のコードは、これらの特別なコメントに基づいてさまざまなプラットフォームにコンパイルされます。

**書き込み:** #ifdef または #ifndef と %PLATFORM% で始まり、#endif で終わります。

  • #ifdef: 定義されている場合は、特定のプラットフォームにのみ存在します
  • #ifndef: 定義されていない場合は、特定のプラットフォームを除いて存在します
  • %PLATFORM%: プラットフォーム名
条件付きコンパイルの書き方 説明する

#ifdef  APP-PLUS には
コード
#endifの条件付きコンパイルが必要です

アプリプラットフォームでのみ表示されるコード

#ifndef条件付きコンパイルが必要な H5
コード
#endif

H5 プラットフォームに加えて、他のプラットフォームに存在するコード

#ifdef  H5  || 条件付きコンパイルが必要なMP-WEIXIN
コード
#endif

H5プラットフォームまたはWeChatミニプログラムプラットフォーム上に存在するコード(ここには||しかありません、交差がないため&&は不可能です)

例えば:

(1) jsの条件付きコンパイル

	onLoad() {
			// h5
			//#ifndef H5
				console.log(1);
			//#endif 
			// 小程序
			//#ifndef MP-WEIXIN
				console.log(2);
			//#endif 
		},

 (2) HTMLの条件付きコンパイル

	<view class="flexC submit iosPadding">
		<!-- #ifdef H5 -->
		<view class="flexC">H5提交</view>
		<!-- #endif -->
		<!-- #ifdef MP-WEIXIN -->
		<view class="flexC">微信小程序提交</view>
		<!-- #endif -->
	</view>

(3) CSSの条件付きコンパイル

	// #ifdef H5
		.submit view {
			background: blue;
		}
	// #endif

	// #ifdef MP-WEIXIN
		.submit view {
			background: red;
		}
	 // #endif

おすすめ

転載: blog.csdn.net/m0_46846526/article/details/131839189