2012-01-30 30 views
22

Tôi đang phát triển một ứng dụng Android bằng cách sử dụng Phonegap. Tôi cần làm cho softkeyboard xuất hiện theo chương trình. Tôi đang sử dụng plugin SoftKeyboard được tìm thấy here. Bất cứ ai có thể cho tôi biết làm thế nào để bao gồm đúng plugin này & làm cho nó hoạt động? Tôi đã thử hướng dẫn tìm thấy trên Phonegap Wiki, nhưng plugin không hoạt động.Làm thế nào để sử dụng Phonegap SoftKeyboard Plugin cho Android?

[Cập nhật] Tôi đã thêm các plugin để con đường

com/zenexity/SoftKeyBoardPlugin/SoftKeyBoard.java

Cập nhật plugins.xml và bao gồm

<plugin name="SoftKeyBoard" value="com.zenexity.SoftKeyBoardPlugin.SoftKeyBoard"/> 

Sau đó, trong thư mục www thêm softkeyboard.js, và sau đây trong index.html

plugins.SoftKeyBoard.show(function() { 
    // success 
},function() { 
    // fail 
}); 

Nhưng không có gì xảy ra, bàn phím không hiển thị ..

+0

xác định 'không làm việc' – Nanne

+0

@Nanne có gì xảy ra, không có bàn phím hiện ra! –

+0

và bạn có đặt bất cứ thứ gì trong thành công/thất bại các bộ phận để gỡ lỗi nếu nó faisl accutally hoặc không/ – Nanne

Trả lời

11

Đây là cách tôi đã SoftKeyBoard làm việc trong ứng dụng của tôi.

DroidGap Side

  • tạo/src/com/PhoneGap/plugins/SoftKeyboard với cung cấp tập tin SoftKeyBoard.java bên
  • add để /res/xml/plugins.xml:

    < plugin name="SoftKeyBoard" value="com.phonegap.plugins.SoftKeyboard.SoftKeyBoard" />

/assets/www Side

  • add cung cấp softkeyboard.js file/tài sản/www/js
  • thêm vào chỉ mục.html vào đầu nơi javascripts khác của bạn mới có sau khi bạn đã bao gồm javascript PhoneGap:

    < script type="text/javascript" charset="utf-8" src="js/softkeyboard.js"></script>

Sau đó bạn có thể gọi sau đây nếu bạn đang ở trên thiết bị hoặc sử dụng một cái gì đó giống như Ripple:

window.plugins.SoftKeyBoard.show(function() { 
    // success 
},function() { 
    // fail 
}); 

hoặc một cái gì đó như thế này nếu bạn muốn đảm bảo không gian tên khả dụng, điều này sẽ ngăn các sự cố không xác định:

((((window || {}).plugins || {}).SoftKeyBoard || {}).show || function(){})(); 

Tôi nghĩ có lẽ bạn đã sai khi không đưa js/softkeyboard.js vào đầu index.html.

Hy vọng điều này sẽ giúp bạn

+0

Làm việc của nó nhưng làm thế nào để biết bàn phím ẩn và hiển thị sự kiện? tôi đã sử dụng mã này (((((|| {}). plugins || {}). SoftKeyBoard || {}). hiển thị || function() {})(); – JavaH

+0

Làm thế nào để gọi hàm trên 'onfocus' hoặc' onclick 'của một' EditText' trong javascript? – YuDroid

+1

Trong trường hợp của tôi, bàn phím được hiển thị và sau đó đột nhiên biến mất. Tại sao điều này xảy ra? – YuDroid

2

Hãy thử nó như thế này:

SoftKeyBoard.show(function() { 
    // success 
},function() { 
    // fail 
}); 

Mã trong file JS không đặt nó trong "plugins" namespace.

Orjust sử dụng PhoneGap plugin đầy đủ không gian tên:

window.plugins.SoftKeyBoard.show(function() { 
    // success 
},function() { 
    // fail 
}); 
9

Đối với phiên bản mới nhất của PhoneGap (Apache Cordova 2.1.0) tôi phải làm như sau:

cài đặt các nguồn cắm mà phản ánh sự thay đổi tên dự án: https://github.com/originalgremlin/phonegap-plugins/tree/master/Android/SoftKeyboard

  • Sao chép softkeyboard.js vào thư mục thư viện javascript của bạn.
  • Sao chép SoftKeyBoard.java để src/org/apache/cordova/plugins/SoftKeyBoard.java

Đặt này trong tập tin HTML của bạn, sau đó có các tập tin cordova.js:

<script src="/path/to/javascripts/softkeyboard.js"></script> 

Add này để dưới cùng của res/xml/config.xml plugins phần:

<plugin name="SoftKeyBoard" value="org.apache.cordova.plugins.SoftKeyBoard" /> 

Bây giờ, giả sử HTML này:

<button id="keyboard">Toggle Keyboard</button> 

jQuery này nên làm điều gì đó hữu ích:

var softkeyboard = window.cordova.plugins.SoftKeyBoard; 
$('#keyboard').toggle(softkeyboard.show, softkeyboard.hide); 
+0

Bạn Sir đã cứu tôi rất nhiều thời gian, cảm ơn bạn rất nhiều! –

+0

bàn phím biến mất sau khi gọi điện thoại? bất kỳ ý tưởng? sử dụng iscrollview, cordova 2.9.0, jqm 1.3.2 – mboeckle

0

Cordova 3,0 + JQM 1.3.2: Thay đổi "toàn màn hình" thành "false" trong config.xml cố định "adjustPan" và ngăn chặn đầu vào của tôi từ việc được che khi bàn phím được hiển thị. Tuy nhiên, blur() sẽ không đóng bàn phím và plugin này hoạt động tuyệt vời.

Đối với phiên bản gần như mới nhất của PhoneGap:

  • Thêm SoftKeyBoard.java vào gói ứng dụng của bạn trong src
  • Thêm softkeyboard.js tài sản/www
  • Cập nhật config.xml với: <feature name="SoftKeyBoard"><param name="android-package" value="com.yourAppPackage" /></feature>
  • Gọi plugin của bạn: plugins.SoftKeyBoard.hide(function() {//success }, function() {//fail });
Các vấn đề liên quan