Chromeブラウザで「WeChatウィジェット」を実行させます
27913 ワード
Transform wxmlとwxss
WXML、WXSSを修正した後、ブラウザで効果を見るにはプロジェクトを再コンパイルする必要があります.バックグラウンドでtransformアクションが実行されます. wccはwxmlをgenrateFunに変換し、この方法を実行するとvirtual dom が得られる. wxssがwxssをcssに変換する点は議論される.
wccとwxssは、vendorディレクトリから入手でき、「微信web開発者ツール」の下で
Transform jsファイル
jsファイルにとって、以下は私たちのappです.jsファイル:
変換すると次のようになります.
私はあなたがすでにこれが何なのか知っているふりをして、どうせ私も考えたくないし、説明もできません~~.同じ理由:
それがhtmlにreplaceやapendをどのようにするかについては、説明しません.
MINAはどのように動作しますか?
Pageを実行するには、次のようなwcc変換関数を使用するvirtual domが必要です.
htmlにscriptを追加します.
この事件が起こります.簡単に分割したjsはいくつかの機能コンポーネントを得た. define.js,ここではAMDモジュール化を定義する場所 である. exparser.js、WXMLタグをHTMLタグ に変換する exparser-behvaior.js、異なるラベルを定義するいくつかの動作 mobile.js、イベントライブラリのはずですが、私は気にしていないようです. page.jsは,コアコード,すなわちPage,Appの定義である. report.js、あなたの言ったことはすべてあなたの証言として使うことができます. virtual_dom.js、virtual domはwccと組み合わせて使用することを実現し、中にはcomponentがあるはずだ.css、weui と呼ぶかもしれません wa-wx.jsは,微信の様々なAPIとWebViewとNativeを定義する場所であり,以下のWXと衝突する. wx.js、同じですが、少し違います. wxJSBridge.js,Weixin JS Bridge
そこで、上のコンポーネントで異なる位置を定義します.カスタム
WXML、WXSSを修正した後、ブラウザで効果を見るにはプロジェクトを再コンパイルする必要があります.バックグラウンドでtransformアクションが実行されます.
wccとwxssは、vendorディレクトリから入手でき、「微信web開発者ツール」の下で
help()
を叩くことができます.openVendor()
を実行すると、上のwcss、wxss、WAServicesが得られます.js、WAWebview.jsは4つのファイルを持っています.Transform jsファイル
jsファイルにとって、以下は私たちのappです.jsファイル:
App({
onLaunch: function () { }
})
変換すると次のようになります.
define("app.js", function(require, module){var window={Math:Math}/* babel*/,location,document,navigator,self,localStorage,history,Caches;
App({
onLaunch: function () {
}
})
});
require("app.js");
私はあなたがすでにこれが何なのか知っているふりをして、どうせ私も考えたくないし、説明もできません~~.同じ理由:
define("pages/index/index.js", function(require, module){var window={Math:Math}/* babel*/,location,document,navigator,self,localStorage,history,Caches;
Page({
data: {
text: initData
}
});
require("pages/index/index.js");
それがhtmlにreplaceやapendをどのようにするかについては、説明しません.
MINAはどのように動作しますか?
Pageを実行するには、次のようなwcc変換関数を使用するvirtual domが必要です.
/*v0.7cc_20160919*/
var $gwxc
var $gaic={}
$gwx=function(path,global){
function _(a,b){b&&a.children.push(b);}
function _n(tag){$gwxc++;if($gwxc>=16000){throw 'enough, dom limit exceeded, you don\'t do stupid things, do you?'};return {tag:tag.substr(0,3)=='wx-'?tag:'wx-'+tag,attr:{},children:[]}}
function _s(scope,env,key){return typeof(scope[key])!='undefined'?scope[key]:env[key]}
function _wl(tname){console.warn('template `' + tname + '` is being call recursively, will be stop.')}
function _ai(i,p,e,me){var x=_grp(p,e,me);if(x)i.push(x);else{console.warn('path `'+p+'` not found from `'+me+'`')}}
function _grp(p,e,me){if(p[0]!='/'){var mepart=me.split('/');mepart.pop();var ppart=p.split('/');for(var i=0;i<ppart.length;i++){if( ppart[i]=='..')mepart.pop();else if(!ppart[i])continue;else mepart.push(ppart[i]);}p=mepart.join('/');}if(me[0]=='.'&&p[0]=='/')p='.'+p;if(e[p])return p;if(e[p+'.wxml'])return p+'.wxml';}
// 。
htmlにscriptを追加します.
document.dispatchEvent(new CustomEvent("generateFuncReady", {
detail: {
generateFunc: $gwx('index.wxml')
}
}))
この事件が起こります.簡単に分割したjsはいくつかの機能コンポーネントを得た.
そこで、上のコンポーネントで異なる位置を定義します.カスタム
generateFuncReady
イベントをトリガーするとvirtual_dom.jsは今回のnderを引き継ぐ: