Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
cordova-plugin-tbs-webview
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenProject
cordova-plugin-tbs-webview
Commits
d3f83cdc
Commit
d3f83cdc
authored
Aug 19, 2019
by
XuYS
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
回滚一个版本
parent
08a9ef44
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
0 additions
and
252 deletions
+0
-252
app/src/main/java/com/orhon/cordova/MainApplication.java
+0
-81
app/src/main/java/org/apache/cordova/x5engine/MyHandler.java
+0
-31
app/src/main/java/org/apache/cordova/x5engine/X5WebView.java
+0
-140
No files found.
app/src/main/java/com/orhon/cordova/MainApplication.java
deleted
100644 → 0
View file @
08a9ef44
package
com
.
orhon
.
cordova
;
import
android.util.Log
;
import
com.tencent.smtt.export.external.TbsCoreSettings
;
import
com.tencent.smtt.sdk.QbSdk
;
import
com.tencent.smtt.sdk.TbsDownloader
;
import
com.tencent.smtt.sdk.TbsListener
;
import
org.apache.cordova.x5engine.MyHandler
;
import
org.apache.cordova.x5engine.X5WebView
;
import
java.util.HashMap
;
public
class
MainApplication
extends
android
.
app
.
Application
{
private
static
final
String
TAG
=
"MainApplication"
;
@Override
public
void
onCreate
()
{
super
.
onCreate
();
// 使用独立 ClassLoader, 需要在内核初始化之前
HashMap
map
=
new
HashMap
();
map
.
put
(
TbsCoreSettings
.
TBS_SETTINGS_USE_PRIVATE_CLASSLOADER
,
true
);
QbSdk
.
initTbsSettings
(
map
);
QbSdk
.
initX5Environment
(
this
,
new
QbSdk
.
PreInitCallback
()
{
@Override
public
void
onCoreInitFinished
()
{
// System.out.println(" tbs init ok");
Log
.
d
(
"orhonCordova"
,
"tbs init ok"
);
MyHandler
.
getInstance
().
sendEmptyMessage
(
0
);
Log
.
e
(
"1111111111111"
,
"-------------------------- "
+
"tbs init ok ! send message 0"
);
}
@Override
public
void
onViewInitFinished
(
boolean
b
)
{
// System.out.println(" tbs init view: " + b);
Log
.
d
(
"orhonCordova"
,
"tbs init view:"
+
b
);
}
});
}
private
void
downloadTbsCore
()
{
// 检测是否需要下载X5Core
boolean
needDownload
=
TbsDownloader
.
needDownload
(
this
,
TbsDownloader
.
DOWNLOAD_OVERSEA_TBS
);
if
(
needDownload
)
{
QbSdk
.
setDownloadWithoutWifi
(
true
);
QbSdk
.
preInit
(
this
,
new
QbSdk
.
PreInitCallback
()
{
@Override
public
void
onCoreInitFinished
()
{
}
@Override
public
void
onViewInitFinished
(
boolean
b
)
{
}
});
QbSdk
.
setTbsListener
(
new
TbsListener
()
{
@Override
public
void
onDownloadFinish
(
int
i
)
{
Log
.
e
(
TAG
,
"onDownloadFinish: "
+
i
);
}
@Override
public
void
onInstallFinish
(
int
i
)
{
Log
.
e
(
TAG
,
"onInstallFinish: "
+
i
);
}
@Override
public
void
onDownloadProgress
(
int
i
)
{
Log
.
e
(
TAG
,
"onDownloadProgress: "
+
i
);
}
});
TbsDownloader
.
startDownload
(
this
);
}
}
}
app/src/main/java/org/apache/cordova/x5engine/MyHandler.java
deleted
100644 → 0
View file @
08a9ef44
package
org
.
apache
.
cordova
.
x5engine
;
import
android.os.Handler
;
import
android.os.Message
;
public
class
MyHandler
extends
Handler
{
static
MyHandler
handler
;
public
static
MyHandler
getInstance
()
{
if
(
handler
==
null
)
{
handler
=
new
MyHandler
();
}
return
handler
;
}
@Override
public
void
handleMessage
(
Message
msg
)
{
lisnener
.
handleMessage
(
msg
);
}
public
interface
IhandlerLisnener
{
void
handleMessage
(
Message
msg
);
}
public
void
setListener
(
IhandlerLisnener
listener
)
{
this
.
lisnener
=
listener
;
}
IhandlerLisnener
lisnener
;
}
app/src/main/java/org/apache/cordova/x5engine/X5WebView.java
deleted
100644 → 0
View file @
08a9ef44
/**
* cordova使用webview层。。。
* 在这个层面不需要设置x5引擎的相关参数...
* <p>
* 1、用于暴露init方法。
* 2、暴露init的方法的目的可能是 X5WebViewEngine的init方法cordova层面去调用,在这个层面去进行webview的init
* init方法的其他作用是判断两个client是否为空,如果为空,初始化一个新的,复制进去
* 3、暴露的其他办法有
* getCordovaWebView 用于从系统层面获取cordova的webview
* <p>
* 一个webview有两个client,分别是webclient和chromewebclient
* setWebViewClient 给webview设置webviewclient
* setWebChromeClient 给webview设置webchromeclient
*/
package
org
.
apache
.
cordova
.
x5engine
;
import
android.content.Context
;
import
android.os.Message
;
import
android.util.AttributeSet
;
import
android.util.Log
;
import
android.view.KeyEvent
;
import
com.orhon.cordova.MainApplication
;
import
com.tencent.smtt.sdk.WebChromeClient
;
import
com.tencent.smtt.sdk.WebView
;
import
com.tencent.smtt.sdk.WebViewClient
;
import
org.apache.cordova.ConfigXmlParser
;
import
org.apache.cordova.CordovaInterface
;
import
org.apache.cordova.CordovaWebView
;
import
org.apache.cordova.CordovaWebViewEngine
;
public
class
X5WebView
extends
WebView
implements
CordovaWebViewEngine
.
EngineView
,
MyHandler
.
IhandlerLisnener
{
private
X5WebViewClient
viewClient
;
X5WebChromeClient
chromeClient
;
private
X5WebViewEngine
parentEngine
;
private
CordovaInterface
cordova
;
public
X5WebView
(
Context
context
)
{
this
(
context
,
null
);
}
public
X5WebView
(
Context
context
,
AttributeSet
attrs
)
{
super
(
context
,
attrs
);
MyHandler
.
getInstance
().
setListener
(
this
);
}
// Package visibility to enforce that only X5WebViewEngine should call this method.
void
init
(
X5WebViewEngine
parentEngine
,
CordovaInterface
cordova
)
{
this
.
cordova
=
cordova
;
this
.
parentEngine
=
parentEngine
;
if
(
this
.
viewClient
==
null
)
{
setWebViewClient
(
new
X5WebViewClient
(
parentEngine
));
}
if
(
this
.
chromeClient
==
null
)
{
setWebChromeClient
(
new
X5WebChromeClient
(
parentEngine
));
}
}
void
initWithLocalServer
(
X5WebViewEngine
parentEngine
,
CordovaInterface
cordova
,
ConfigXmlParser
parser
,
X5WebViewLocalServer
server
,
String
CDV_LOCAL_SERVER_REF
)
{
//init the webview with server
this
.
cordova
=
cordova
;
this
.
parentEngine
=
parentEngine
;
if
(
this
.
viewClient
==
null
)
{
setWebViewClient
(
new
X5WebViewClient
(
parentEngine
,
parser
,
server
,
CDV_LOCAL_SERVER_REF
)
);
}
if
(
this
.
chromeClient
==
null
)
{
setWebChromeClient
(
new
X5WebChromeClient
(
parentEngine
));
}
}
@Override
public
CordovaWebView
getCordovaWebView
()
{
return
parentEngine
!=
null
?
parentEngine
.
getCordovaWebView
()
:
null
;
}
@Override
public
void
setWebViewClient
(
WebViewClient
client
)
{
viewClient
=
(
X5WebViewClient
)
client
;
super
.
setWebViewClient
(
client
);
}
@Override
public
void
setWebChromeClient
(
WebChromeClient
client
)
{
chromeClient
=
(
X5WebChromeClient
)
client
;
super
.
setWebChromeClient
(
client
);
}
@Override
public
boolean
dispatchKeyEvent
(
KeyEvent
event
)
{
Boolean
ret
=
parentEngine
.
client
.
onDispatchKeyEvent
(
event
);
if
(
ret
!=
null
)
{
return
ret
.
booleanValue
();
}
return
super
.
dispatchKeyEvent
(
event
);
}
boolean
status
=
false
;
String
url
=
""
;
// String url = "file:///android_asset/www/index.html";
@Override
public
void
loadUrl
(
String
s
)
{
url
=
s
;
Log
.
e
(
"1111111111111"
,
"------------------ url : "
+
url
);
if
(
status
)
return
;
super
.
loadUrl
(
s
);
}
@Override
public
void
handleMessage
(
Message
msg
)
{
Log
.
e
(
"1111111111111"
,
"------------------ get message "
+
msg
.
what
);
if
(
msg
.
what
==
0
)
{
status
=
true
;
loadUrl
(
url
);
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment