cordova Plugin.xml 詳解

Plugin.xml

plugin.xml文件定義了你的插件所需的結(jié)構(gòu)和設(shè)置救恨。它有幾個(gè)元素來(lái)提供有關(guān)你的插件的詳細(xì)信息纵朋。

plugin

這個(gè)plugin元素是插件清單的頂級(jí)元素雷客。

屬性(類型) 描述
xmlns(string) Required該插件的命名空間裙秋,http://apache.org/cordova/ns/plugins/1.0容燕。如果該文件包含來(lái)自其他名稱空間梁呈,如要加入到Android中的情況下,AndroidManifest.xml文件標(biāo)記的XML缰趋,這些命名空間也應(yīng)包括在該元素捧杉。
id(string) Required A npm-style 標(biāo)識(shí)符插件陕见。
version(string) Required該插件的版本號(hào). Semver syntax is supported.

例子:

    <?xml version="1.0" encoding="UTF-8"?>
    <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
     xmlns:android="http://schemas.android.com/apk/res/android"
    id="my-plugin-id"
    version="1.0.2">        

engines and engine

在<engines>元素的子元素指定此插件支持基于科爾多瓦的Apache框架版本。該CLI中止與任何插件味抖,其目標(biāo)項(xiàng)目不符合engines的約束非零代碼评甜。如果沒(méi)有指定標(biāo)簽,則CLI嘗試安裝到指定的cordova項(xiàng)目目錄仔涩。

屬性(類型) 描述
name(string) Required 引擎的名稱忍坷。以下是所支持的默認(rèn)引擎:cordova,cordova-plugman,cordova-android,cordova-ios,cordova,blackberry10,cordova-wp8,cordova-windows,cordova-osx,windows-os,android-sdk (returns the highest Android api level installed),windows-sdk (returns the native windows SDK version),apple-xcode (returns the xcode version),apple-ios (returns the highest iOS version installed),apple-osx (returns the OSX version),blackberry-ndk (returns the native blackberry SDK version)您也可以除了默認(rèn)的指定自定義框架。
version(string) Required 你的框架必須擁有安裝的版本熔脂。 Semver語(yǔ)法支持
scriptSrc(string) 僅適用于自定義的框架 Required該腳本文件佩研,告訴plugman自定義架構(gòu)的版本。理想情況下霞揉,這個(gè)文件應(yīng)該是你的插件目錄的頂級(jí)目錄中旬薯。
platform(string) 僅適用于自定義的框架 需要該平臺(tái)的框架支持。您可以使用通配符*說(shuō)支持所有的平臺(tái)适秩,像'android的一個(gè)管道字符指定多個(gè)

Examples:

<engines>
     <engine name="cordova-android" version="=1.8.0" />
</engines>

engines元件也可以使用'>'绊序,'>='等,以避免重復(fù)指定模糊匹配秽荞,并且當(dāng)?shù)讓拥钠脚_(tái)被更新骤公,以減少維護(hù)。

<engines>
    <engine name="cordova-android" version=">=1.8.0" />
</engines>

在<engines>標(biāo)簽也對(duì)所有的cordova存在的主要平臺(tái)默認(rèn)的支持扬跋。指定科爾多瓦引擎標(biāo)簽意味著阶捆,在任何平臺(tái)上cordova的所有版本都必須滿足的引擎版本屬性。你也可以列出特定平臺(tái)及其版本钦听,以覆蓋包羅萬(wàn)象的cordova引擎:

<engines>
 <engine name="cordova" version=">=1.7.0" />
 <engine name="cordova-android" version=">=1.8.0" />
 <engine name="cordova-ios" version=">=1.7.1" />
</engines>

自定義框架例如:

<engines>
    <engine name="my_custom_framework" version="1.0.0" platform="android" scriptSrc="path_to_my_custom_framework_version"/>
    <engine name="another_framework" version=">0.2.0" platform="ios|android" scriptSrc="path_to_another_framework_version"/>
    <engine name="even_more_framework" version=">=2.2.0" platform="*" scriptSrc="path_to_even_more_framework_version"/>
 </engines>

name

name元素用于指定插件的名稱洒试。
Example:

 <name>Foo</name>

description

描述元素用于指定插件的描述。此元素不處理本地化朴上。

Example:

<description>Foo plugin description</description>

author

author元素包含了插件作者的姓名儡司。

Example:

<author>Foo plugin author</author>

keywords

keywords元素的內(nèi)容包含逗號(hào)分隔的關(guān)鍵字來(lái)描述該插件。

<keywords>foo,bar</keywords>

license

此元素用于指定插件的許可證余指。PS:這里我也沒(méi)有明白

Example:

<license>Apache 2.0 License</license>

asset

這個(gè)元素用來(lái)列出文件或目錄被復(fù)制到cordova的應(yīng)用程序的www目錄捕犬。嵌套內(nèi)的任何<asset>元素<platform>元素指定特定于平臺(tái)的網(wǎng)絡(luò)資源。

屬性(類型) 描述
src(string) Required 凡文件或目錄位于插件包酵镜,相對(duì)于plugin.xml的文件碉碉。如果文件沒(méi)有在指定位置的src存在,CLI停止并反轉(zhuǎn)安裝過(guò)程淮韭,發(fā)出關(guān)于沖突的通知垢粮,并與非零代碼退出。
target(string) Required 在該文件或目錄應(yīng)位于cordova應(yīng)用程序靠粪,相對(duì)于www目錄蜡吧。如果文件已經(jīng)在目標(biāo)位置存在毫蚓,CLI的停止并反轉(zhuǎn)安裝過(guò)程中,發(fā)出關(guān)于沖突通知昔善,并用一非零代碼退出元潘。

Examples:

<!-- a single file, to be copied in the root directory -->
<asset src="www/foo.js" target="foo.js" />
<!-- a directory, also to be copied in the root directory -->
<asset src="www/foo" target="foo" />

asset可以設(shè)置為有針對(duì)性地子目錄為好。這將創(chuàng)建www目錄內(nèi)的js/experimental君仆,除非已經(jīng)存在翩概,并復(fù)制新foo.js文件,重命名為foo.js.

<asset src="www/new-foo.js" target="js/experimental/foo.js" />

js-module

大部分插件包括一個(gè)或多個(gè)JavaScript文件返咱。每個(gè)JS-module標(biāo)簽對(duì)應(yīng)一個(gè)JavaScript文件,并防止插件的用戶不必添加script標(biāo)記為每個(gè)文件钥庇。不要用保鮮cordova.define的文件,因?yàn)樗鼤?huì)自動(dòng)添加咖摹。該模塊被包裹在一個(gè)閉包评姨,用模塊,出口和范圍要求萤晴,因?yàn)槭钦5腁MD模塊参咙。嵌套JS-module在platform聲明特定平臺(tái)的JavaScript綁定的模塊元素。

屬性(類型) 描述
src(string) 參考相對(duì)plugin.xml文件插件目錄中的文件硫眯。如果SRC不能解決現(xiàn)有文件中,CLI停止并反轉(zhuǎn)安裝择同,發(fā)出問(wèn)題的通知两入,并與非零代碼退出。
name(string) 提供模塊名稱的最后一部分敲才。它一般可以是你喜歡的裹纳,如果你想使用cordova.require導(dǎo)入你的插件的其他部分在JavaScript代碼只在乎。對(duì)于JS-module模塊名稱是你的插件的ID后跟名稱的值紧武。

Example:

當(dāng)安裝與下面的例子中的一個(gè)插件剃氧,socket.js被復(fù)制到www/plugins/my-plugin-id/socket.js,并添加為一個(gè)條目到www/cordova_plugins.js阻星。在加載時(shí)朋鞍,在cordova.js代碼使用XHR來(lái)讀取每個(gè)文件并注入 script 標(biāo)記為HTML。

<js-module src="socket.js" name="Socket">
</js-module>

也正因?yàn)檫@個(gè)例子中妥箕,chrome-socket的插件ID滥酥,模塊名稱將是chrome-socket.Socket.

clobbers

JS-module元素內(nèi)標(biāo)記。用于指定module.exports被插入在window對(duì)象的命名空間畦幢。你可以有很多的clobbers只要你喜歡坎吻。創(chuàng)建window上的任何對(duì)象不可用。

屬性(類型) 描述
target(string) 其中宇葱,module.exports被插入的命名空間瘦真。

Example:

<js-module src="socket.js" name="Socket">
    <clobbers target="chrome.socket" />
</js-module>

這里module.exports被插入到window對(duì)象window.chrome.socket刊头。

merges

JS-module元素內(nèi)標(biāo)記。用來(lái)指定在哪里module.exports獲取與任何現(xiàn)有的價(jià)值合并window對(duì)象的命名空間诸尽。如果已經(jīng)存在原杂,模塊的版本取代原來(lái)的。你可以有很多的merges只要你喜歡弦讽。創(chuàng)建window上的任何對(duì)象不可用污尉。

屬性(類型) 描述
target(string) 這module.exports命名空間被合并。

Example:

<js-module src="socket.js" name="Socket">
     <merges target="chrome.socket" />
</js-module>

這里module.exports得到與window.chrome.socket的任何現(xiàn)有值合并往产。

runs

runs 是JS-module元素內(nèi)標(biāo)記被碗。這意味著你的代碼應(yīng)與cordova.require指定,但窗口對(duì)象上沒(méi)有安裝仿村。初始化模塊時(shí)锐朴,附加的事件處理程序或其他方式,這非常有用蔼囊。您最多只能有一個(gè)runs標(biāo)記焚志。請(qǐng)注意,包括runs與<clobbers/>或<merges/>是多余的畏鼓,因?yàn)樗鼈円瞔ordova.require您的模塊酱酬。

Example:

<js-module src="socket.js" name="Socket">
     <runs/>
</js-module>

dependency

在dependency標(biāo)簽允許你指定在其當(dāng)前插件依賴其他插件。該插件被其獨(dú)特的NPM的ID或URL GitHub的引用云矫。

屬性(類型) 描述
Attributes(type) Descriptionid(string) 提供插件的ID膳沽。
url(string) 一種插件URL。這應(yīng)該引用一個(gè)Git倉(cāng)庫(kù)让禀,其中CLI嘗試克隆挑社。
commit(string) 這是git的結(jié)帳理解的任何git的參考:一個(gè)分支或標(biāo)記的名稱,(e.g., master, 0.3.1), or a commit hash (e.g., 975ddb228af811dd8bb37ed1dfd092a3d05295f9)
subdir(string) 指定目標(biāo)插件存在依賴的Git倉(cāng)庫(kù)的子目錄。這是有幫助的巡揍,因?yàn)樗试S包含幾個(gè)相關(guān)的插件庫(kù)痛阻,每個(gè)單獨(dú)指定。-----如果設(shè)置了dependency>標(biāo)簽的網(wǎng)址“”腮敌。并提供一個(gè)子目錄阱当,依賴插件是從同一個(gè)本地或遠(yuǎn)程的Git倉(cāng)庫(kù)為指定的dependency標(biāo)記父插件安裝。-------請(qǐng)注意糜工,子目錄始終指定相對(duì)于git倉(cāng)庫(kù)斗这,不是父插件的根目錄的路徑。這是真實(shí)的啤斗,即使你安裝了一個(gè)直接本地路徑后援CLI插件找到Git倉(cāng)庫(kù)的根目錄表箭,然后從那里找到的其他插件。
version(string) 該插件的版本依賴。 Semver句法支持免钻。

Examples:

 <dependency id="cordova-plugin-someplugin" url="https://github.com/myuser/someplugin" commit="428931ada3891801" subdir="some/path/here" />
 <dependency id="cordova-plugin-someplugin" version="1.0.1">

platform

標(biāo)識(shí)具有相關(guān)聯(lián)的本機(jī)代碼或需要修改其配置文件的平臺(tái)彼水。工具使用這個(gè)規(guī)范可以識(shí)別支持的平臺(tái)和代碼安裝到cordova項(xiàng)目。無(wú)platform標(biāo)記插件被假定為JavaScript的唯一的极舔,因此在任何和所有平臺(tái)安裝凤覆。

屬性(類型) 描述
name(string) 允許值:ios, android, blackberry10, amazon-fireos, wp8, windows標(biāo)識(shí)為支撐,其子元素與平臺(tái)相關(guān)聯(lián)的平臺(tái)拆魏。

Example:

<platform name="android">
    <!-- android-specific elements -->
</platform>

source-file

標(biāo)識(shí)應(yīng)安裝到一個(gè)項(xiàng)目中的可執(zhí)行文件的源代碼盯桦。

屬性(類型) 描述
src(string) 需要相對(duì)于plugin.xml到文件的位置。如果無(wú)法找到在src文件渤刃,則CLI停止并反轉(zhuǎn)安裝拥峦,發(fā)出關(guān)于該問(wèn)題的通知,并用一個(gè)非零代碼退出卖子。
target-dir(string) 目錄到其中的文件應(yīng)該被復(fù)制略号,相對(duì)于cordova項(xiàng)目的根。在實(shí)踐中洋闽,這是基于Java的平臺(tái)玄柠,其中,在所述com.alunny.foo包的文件必須位于Ccom/alunny/foo目錄最重要的诫舅。對(duì)于平臺(tái)所在的源目錄并不重要羽利,這個(gè)屬性應(yīng)該被忽略。
framework(boolean) 默認(rèn)值:false iOS版 如果設(shè)置為true刊懈,還增加了指定的文件作為該項(xiàng)目的框架这弧。
compiler-flags(string) iOS 如果設(shè)置,將指定的編譯器選項(xiàng)為特定的源文件

Examples:

<!-- android -->
<source-file src="src/android/Foo.java" target-dir="src/com/alunny/foo" />
<!-- ios -->
<source-file src="src/ios/CDVFoo.m" />
<source-file src="src/ios/someLib.a" framework="true" />
<source-file src="src/ios/someLib.a" compiler-flags="-fno-objc-arc" />

header-file

這就像source-file元素俏讹,但專門為平臺(tái),例如iOS和Android的源文件畜吊,頭文件和資源加以區(qū)分泽疆。這不是由Windows支持。

屬性(類型) 描述
src(string) 需要 相對(duì)于plugin.xml到文件的位置玲献。殉疼。如果無(wú)法找到在src文件,則CLI停止并反轉(zhuǎn)安裝捌年,發(fā)出關(guān)于該問(wèn)題的通知瓢娜,并用一個(gè)非零代碼退出。
target(string) 路徑在該文件將在你的目錄進(jìn)行復(fù)制礼预。

Example:

For iOS:

<header-file src="CDVFoo.h" />

resource-file

這就像source-file元素眠砾,但專門為平臺(tái),例如iOS和Android的源文件托酸,頭文件和資源加以區(qū)分褒颈。

屬性(類型) 描述
src(string) 需要 相對(duì)于plugin.xml到文件的位置柒巫。。如果無(wú)法找到在src文件谷丸,則CLI停止并反轉(zhuǎn)安裝堡掏,發(fā)出關(guān)于該問(wèn)題的通知,并用一個(gè)非零代碼退出刨疼。
target(string) 路徑在該文件將在你的目錄進(jìn)行復(fù)制泉唁。

Examples:

For Android:

    <resource-file src="FooPluginStrings.xml" target="res/values/FooPluginStrings.xml" />

config-file

標(biāo)識(shí)一個(gè)基于XML的配置文件進(jìn)行修改,其中在該文件中所述修改應(yīng)該發(fā)生揩慕,什么應(yīng)該進(jìn)行修改亭畜。已經(jīng)過(guò)測(cè)試,修改與此元素的兩個(gè)文件類型是XML和的plist文件漩绵。在配置文件中的元素只允許新的兒童追加到XML文檔樹贱案。孩子們?cè)谀繕?biāo)文檔中插入XML文本。

屬性(類型) 描述
target(string) 該文件被修改止吐,并且相對(duì)于cordova項(xiàng)目的根的路徑宝踪。如果指定的文件不存在,該工具會(huì)忽略配置變化碍扔,并繼續(xù)安裝瘩燥。目標(biāo)可以包括通配符(*)的元素。在這種情況下不同,CLI遞歸項(xiàng)目的目錄結(jié)構(gòu)進(jìn)行搜索厉膀,并使用第一個(gè)匹配。在iOS上二拐,配置的位置服鹅,相對(duì)于項(xiàng)目根目錄是不知道,因此指定config.xml中的目標(biāo)文件解析到cordova-ios-project/MyAppName/config.xml中百新。
parent(string) 一個(gè)XPath選擇引用的元素的父要添加到配置文件企软。如果您使用的絕對(duì)選擇,你可以使用通配符(*)指定的根元素饭望,例如/ * /插件仗哨。如果選擇器不能解決到指定文檔的孩子,工具停止并反轉(zhuǎn)安裝過(guò)程中铅辞,會(huì)發(fā)出警告厌漂,并用非零代碼退出。對(duì)于文件的plist斟珊,父在什么父鍵指定的XML應(yīng)插入決定苇倡。
after(string) 接受兄弟姐妹的優(yōu)先列表之后,添加X(jué)ML片段〕冢可用于指定在需要這樣的XML元素的嚴(yán)格的順序文件中的更改胜嗓。

Examples:

For XML:

  <config-file target="AndroidManifest.xml" parent="/manifest/application">
    <activity android:name="com.foo.Foo" android:label="@string/app_name">
      <intent-filter>
      </intent-filter>
    </activity>
 </config-file>

For plist:

<config-file target="*-Info.plist" parent="CFBundleURLTypes">
  <array>
      <dict>
          <key>PackageName</key>
          <string>$PACKAGE_NAME</string>
      </dict>
  </array>
</config-file>

plugins-plist

指定鍵和值將追加到在在iOScordova項(xiàng)目的正確AppInfo.plist文件。這是過(guò)時(shí)钩乍,因?yàn)樗鼉H適用于科爾多瓦-IOS2.2.0及以下辞州。使用config-file標(biāo)記科爾多瓦的較新版本。
Example:

<plugins-plist key="Foo" string="CDVFoo" />

lib-file

鏈接源寥粹,資源和頭文件变过。

屬性(類型) 描述
src(string) 需要 相對(duì)于文件的位置到plugin.xml。如果無(wú)法找到的src涝涤,CLI的停止并反轉(zhuǎn)安裝媚狰,發(fā)出關(guān)于該問(wèn)題的警告,并用一非零代碼退出阔拳。
arch(string) 對(duì)于其中的.so文件已建成的建筑崭孤,無(wú)論是設(shè)備或模擬器。對(duì)于Windows糊肠,則表示該<SDKReference>構(gòu)建為指定的結(jié)構(gòu)時(shí)只應(yīng)被包括在內(nèi)辨宠。支持的值是86,64或ARM货裹。

Examples:

<lib-file src="src/BlackBerry10/native/device/libfoo.so" arch="device" />
<lib-file src="src/BlackBerry10/native/simulator/libfoo.so" arch="simulator" />

framework

標(biāo)識(shí)的框架(通常是系統(tǒng)/平臺(tái)的一部分)該插件依賴嗤形。

屬性(類型) 描述
src(string) 需要 系統(tǒng)框架或者被包括作為你的插件文件的一部分給一個(gè)相對(duì)路徑名。
custom(boolean) 表示框架是否是作為你的插件文件的一部分弧圆。
weak(boolean) 默認(rèn)值:false 指示是否該框架應(yīng)弱鏈接赋兵。
type(string) 表示框架添加的類型。
parent(string) 默認(rèn)值:設(shè)置到包含子項(xiàng)目在其中添加參考的目錄的相對(duì)路徑搔预。默認(rèn)霹期。意味著應(yīng)用程序項(xiàng)目。

Examples:

For iOS:

 <framework src="libsqlite3.dylib" />
 <framework src="social.framework" weak="true" />
 <framework src="relative/path/to/my.framework" custom="true" />

在Android(如cordova-android@4.0.0的)拯田,使用框架的標(biāo)簽历造,包括Maven依賴,或者包括捆綁的庫(kù)項(xiàng)目勿锅。

<!-- Depend on latest version of GCM from play services -->
<framework src="com.google.android.gms:play-services-gcm:+" />
<!-- Depend on v21 of appcompat-v7 support library -->
<framework src="com.android.support:appcompat-v7:21+" />
<!-- Depend on library project included in plugin -->
<framework src="relative/path/FeedbackLib" custom="true" />

info

向用戶提供更多的信息帕膜。當(dāng)你需要不容易自動(dòng)或超出了CLI的范圍枣氧,額外的步驟溢十,這是非常有用的。此標(biāo)記的內(nèi)容被打印出來(lái)的時(shí)候达吞,CLI安裝插件张弛。

Example:

<info>
You need to install __Google Play Services__ from the `Android  Extras` section using the Android SDK manager (run `android`).

  You need to add the following line to the `local.properties`:

android.library.reference.1=PATH_TO_ANDROID_SDK/sdk/extras/google/google_play_services/libproject/google-play-services_lib
</info>

hook

表示將由cordova當(dāng)某些行為發(fā)生時(shí)被調(diào)用自定義腳本(例如,插件添加或平臺(tái)準(zhǔn)備邏輯后調(diào)用)。當(dāng)你需要擴(kuò)展默認(rèn)cordvoa的功能吞鸭,這非常有用寺董。

Example:

  <hook type="after_plugin_install" src="scripts/afterPluginInstall.js" />

uses-permission

在某些情況下,插件可能需要使依賴于目標(biāo)應(yīng)用程序配置的改變刻剥。例如遮咖,要在Android,應(yīng)用程序的包ID是我-APP-ID將需要的權(quán)限造虏,如注冊(cè)C2DM:

<uses-permission android:name="my-app-id.permission.C2D_MESSAGE"/>

在從plugin.xml文件中插入的內(nèi)容是不是提前知道這樣的情況下御吞,變量可以通過(guò)一個(gè)美元符號(hào)后面是一系列大寫字母,數(shù)字或下劃線的表示漓藕。對(duì)于上面的例子中陶珠,plugin.xml文件將包括此標(biāo)記:

<uses-permission android:name="$PACKAGE_NAME.permission.C2D_MESSAGE"/>

如果沒(méi)有找到該CLI替換指定的值,或空字符串變量的引用享钞∽岱蹋可變基準(zhǔn)的值可以被檢測(cè)(在此情況下,從AndroidManifest.xml文件)栗竖,或者由工具的用戶指定;確切的過(guò)程是依賴于特定的工具暑脆。

Plugman可以要求用戶指定插件的必需的變量。例如划滋,對(duì)于C2M和谷歌地圖API密鑰可以被指定為一個(gè)命令行參數(shù):

plugman --platform android --project /path/to/project --plugin name|git-url|path --variable API_KEY=!@CFATGWE%^WGSFDGSDFW$%^#$%YTHGsdfhsfhyer56734

preference

正如上一節(jié)中看到的饵筑,有時(shí)插件可能需要用戶為他們的變量賦值。為了使這些變量強(qiáng)制性的处坪,在<平臺(tái)>標(biāo)簽必須包含一個(gè)<優(yōu)先>標(biāo)記根资。在CLI檢查,這些要求的偏好中通過(guò)同窘。如果不是玄帕,則應(yīng)當(dāng)警告用戶如何在可變和出口通過(guò)帶有非零碼。

屬性(類型) 描述
name(string) 需要 變量的名稱..
default(string) 變量的默認(rèn)值想邦。如果存在的話裤纹,它的值將被使用,并沒(méi)有錯(cuò)誤將萬(wàn)一用戶發(fā)出不輸入任何值丧没。

Example:

 <preference name="API_KEY" default="default-value" />
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鹰椒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子呕童,更是在濱河造成了極大的恐慌漆际,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夺饲,死亡現(xiàn)場(chǎng)離奇詭異奸汇,居然都是意外死亡施符,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門擂找,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)戳吝,“玉大人,你說(shuō)我怎么就攤上這事贯涎√蓿” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵塘雳,是天一觀的道長(zhǎng)欢唾。 經(jīng)常有香客問(wèn)我,道長(zhǎng)粉捻,這世上最難降的妖魔是什么礁遣? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮肩刃,結(jié)果婚禮上祟霍,老公的妹妹穿的比我還像新娘。我一直安慰自己盈包,他們只是感情好沸呐,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呢燥,像睡著了一般崭添。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上叛氨,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天呼渣,我揣著相機(jī)與錄音,去河邊找鬼寞埠。 笑死屁置,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仁连。 我是一名探鬼主播蓝角,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼饭冬!你這毒婦竟也來(lái)了使鹅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤昌抠,失蹤者是張志新(化名)和其女友劉穎患朱,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扰魂,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡麦乞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了劝评。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姐直。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蒋畜,靈堂內(nèi)的尸體忽然破棺而出声畏,到底是詐尸還是另有隱情,我是刑警寧澤姻成,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布插龄,位于F島的核電站,受9級(jí)特大地震影響科展,放射性物質(zhì)發(fā)生泄漏均牢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一才睹、第九天 我趴在偏房一處隱蔽的房頂上張望徘跪。 院中可真熱鬧,春花似錦琅攘、人聲如沸垮庐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)哨查。三九已至,卻和暖如春剧辐,著一層夾襖步出監(jiān)牢的瞬間寒亥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工荧关, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留护盈,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓羞酗,卻偏偏與公主長(zhǎng)得像腐宋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子檀轨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容